【发布时间】:2015-09-24 07:51:51
【问题描述】:
我一直在尝试了解 C++ 中的指针是如何工作的,我有一些疑问希望这里有人能帮助我。
假设我的结构如下:
struct node
{
int val;
node *n1;
node **n2;
};
我还有一个功能如下:
void insertVal(node *&head, node *&last, int num)
我的问题:
n2指向什么?使用'*'和'**'有什么区别?函数中
*&是什么意思?我注意到在插入的链表实现中(在我看到的教程中)'*&'被使用而不是'*'为什么会这样?
如果这个问题很愚蠢,我深表歉意,但我很难理解这一点。谢谢。
编辑:我简化了结构只是为了理解 ** 的含义。代码在这里:http://www.sanfoundry.com/cpp-program-implement-b-tree/。有人提到 ** 指的是节点数组,我认为这里就是这种情况。
【问题讨论】:
-
如果不查看使用该结构的代码,我们如何知道
n2指向的内容? -
如果我不得不猜测,
n1可能是指向列表中下一个兄弟node的指针,而n2是指向子nodes 的指针的动态数组。 -
node*指向node,node**指向node*。node*&是对指向节点的指针的引用。
标签: c++ pointers data-structures