我已经在一个列表上实现了操作,其中一个是添加,因为我不想返回任何东西,我读到我必须使用 **,它有效,但我在另一个地方看到它被传递为 *&,但我不知道有什么区别
addNode( node *&head, int 值) addNode(node **head, int value)
有什么区别,哪个更好,或者它们的意思相同? 我知道第二个是指向指针的指针。
谢谢
最佳答案
第一个 (**
) 是一个指向指针的指针,第二个 (*&
) 是一个引用 指向一个指针。
引用和指针在概念上非常相似。但是有一些重要的区别,例如:
- 引用不能为 NULL(但它可以引用指向 NULL 的指针)。
- 您不能修改引用以引用其他内容。
- 您需要取消引用指针才能访问该值。
有关更多差异,请参阅此相关问题:
关于C++参数传递中**和*&的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3834067/