为什么在向指针发送指针时遍历会永久更改链接列表,但仅指针不会

时间:2019-02-07 12:31:41

标签: c++ list pointers

好吧,基本上来说,当我发送NODE * HEAD作为参数时,该代码基本上不会遍历列表,就像我两次调用该函数一样,它将两次打印整个链接列表,但是我发送NODE ** HEAD并调用print两次,然后第二次将打印NULL,因为它被永久遍历了,为什么?

它变得更加令人困惑,因为如果我尝试在一个带有node * head作为参数的链接列表的末尾添加一个元素,它将永久地将其添加到列表中。为什么在这种情况下,node **头不是必需的,为此也添加了代码。

我已经看了很多,但我真的想不通。

void print(node * head){
    while(head!=NULL){
        cout<<head->data<<"-->";
        head = head->next;
    }
    cout<<"NULL"<<endl;
}
void inserstAtLAst(node * head,int data){
    node * temp = new node(data);
    while(head->next!=NULL){
        head = head->next;
    }
    head->next = temp;
}

0 个答案:

没有答案