The*_* K. 5 c++ struct pointers reference
我有一个指向C++中的结构对象的指针.
node *d=head;
Run Code Online (Sandbox Code Playgroud)
我想通过引用将该指针传递给函数并编辑它所指向的位置.我可以传递它,但它不会改变初始指针指向的地方,但只改变函数中的本地指针.函数的参数必须是指针对吗?之后如何更改它以显示同一结构的不同对象?
Gre*_*ill 11
您有两个基本选择:按指针传递或按引用传递.通过指针传递需要使用指向指针的指针:
void modify_pointer(node **p) {
*p = new_value;
}
modify_pointer(&d);
Run Code Online (Sandbox Code Playgroud)
通过引用传递使用&
:
void modify_pointer(node *&p) {
p = new_value;
}
modify_pointer(d);
Run Code Online (Sandbox Code Playgroud)
如果将指针作为公正传递node *d
,则d
在函数内修改将仅修改本地副本,如您所观察到的那样.