*&in void headInsert(DoubleLinkList*&head, int theData)是什么意思。是否等同于 void headInsert(DoubleLinkList he

what mean of *& in void headInsert(DoubleLinkList*& head, int theData) . is it equivalent to void headInsert(DoubleLinkList head, int theData)

本文关键字:DoubleLinkList headInsert void 意思 是否 等同于 是什么 he in head int      更新时间:2023-10-16

我对指针的概念有点疑惑。

当我尝试使用DoubleLinkList

void headInsert(DoubleLinkList head, int theData) 

这个东西不工作。但这是工作:

void headInsert(DoubleLinkList*& head, int theData)

为什么?

这是对指针的引用,这意味着指针是通过引用传递的。这意味着当函数返回时,对函数内部指针的更改仍然有效。

相反,当指针按值传递时(即没有引用&),它实际上在调用函数时被复制到一个新的局部变量中。这意味着,如果指针发生了变化,只有这个本地副本发生了变化,而从函数外部传递过来的指针不会发生变化。

将指针作为引用传递,使函数可以更改指针指向的对象(当指针按值传递时,这是不可能的)。

从右到左读。

在第一种情况下,headDoubleLinkList

在第二种情况下,head是一个指向DoubleLinkList的指针的引用。