双指针vs通过引用指针传递
这个问题在这里已经有了答案:
“为什么使用引用而不是指针指针”? 你会得到相同的答案,就像询问“为什么使用指针而不是参考”一样,用于任何其他类型的变量......
基本上:
对指针或任何其他变量的引用很聪明,因为后面应该总是有一个对象
指针(指针或任何其他变量)是智能的,因为它们可能是NULL
(可选)
引用(对指针或任何其他变量)在C中不可用
引用(对指针或任何其他变量)很聪明,因为它们可以用作对象(不需要像指针一样的引用,更简单的语法,rading)
等等...
有很多帖子回答了这个问题:
C ++中的指针变量和引用变量之间有什么区别?
在C ++中通过引用传递指针会带来什么好处?
在这种情况下,双指针习惯用法是C继承。 C没有引用的概念(仍然没有),所以修改指针的唯一方法是将指针传递给指针。
但是当C ++提供引用时,只需要在函数中更改变量时使用它们,无论它是否为指针,因为它允许代码更清楚地了解程序员的意图。
如果要将空值用作特殊情况(引用永远不能指向null),则上述规则为例外:
“指向指针”成语的起源可以追溯到C语言,在那里它是必要的。 C没有参考。 你有理由怀疑它在C ++中是不需要的。
(一个“双指针”也可能指向double*
,BTW,指针指针并不那么模糊)
上一篇: Double pointer vs pass by reference pointer
下一篇: When to pass a pointer to pointer as argument to functions in C++?