引用指针与通过引用传递
Reference to pointer vs Pass by reference?
下面的CodeA和CodeB有什么区别?:它们在语法上都是正确的,并且似乎两个代码都能够修改原始指针"head"。
如果我错了,请纠正我
代码A:(通过参考)
NodeType *head = new NodeType();
insertNode(*head, val);
void insertNode(NodeType &head, int val) {}
代码B:(指针参考)
NodeType *head = new NodeType();
insertNode(head, val);
void insertNode(NodeType *&head, int val) {}
编辑想补充一下,在什么情况下代码A更可取,反之亦然?
看来这两个代码都可以修改原来的指针"头"
错了。只有代码B才能修改head
指针。代码A接收由head
指向的NodeType
对象,而不是指针。
什么情况下代码A更可取,反之亦然?
当函数只需要NodeType
对象时,代码A是优选的。
当函数需要修改指针值时,最好使用代码B,例如将其更改为指向另一个NodeType
对象。
相关文章:
- C++取消引用指针.为什么会发生变化
- 深层复制具有自引用指针的类
- Visual c ++,使用字符串引用/指针调用 dll 函数
- std::unordered_map::提取引用/指针失效
- 为什么在引用指针时将 const 放在 & 符号的左侧有效,而在右侧则无效?
- 区分接受常量参数的函数引用/指针和与函数参数同名的非常量参数
- 如何在 c++ 中使用带有数学运算的引用/指针?
- 了解通过引用传递取消引用指针时C++堆/堆栈分配
- 取消引用指针并立即为其分配变量,导致分段错误
- 如何获取指向类(而不是对象)的引用/指针
- 将类型参数传递给自引用指针
- 我应该如何定义返回指针的函数?(引用指针与指针指针)
- 在析构函数内取消引用指针时出现分段错误
- 来自引用指针的内存泄漏
- 引用指针后面的值
- 无法取消引用指针
- 引用指针调用成员函数
- 未定义的引用指针的变量模板在clang中功能,而不是GCC
- 取消引用指针以创建数组的副本
- 有关启动引用指针的引用的问题