我有一个打印链表的功能。代码工作正常。但我理解这个功能有问题。这是函数
void print(node* x)
{
while(x != NULL)
{
cout << x -> info << " ";
x = x -> next;
}
}
node
结构
struct node
{
int info;
node *next;
};
声明x = x -> next
让我感到困惑。它不会将x
的值更改为next
节点的值吗?我没有看到我的问题的合理解决方案。任何帮助,将不胜感激。
答案 0 :(得分:0)
node *x
将x定义为指针,实际上它只是一个值存储一些内存地址。
除非执行x->next->field = VALUE
,否则不会更改原始列表。