0

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

当我尝试使用 DoubleLinkList

void headInsert(DoubleLinkList head, int theData) 

这东西行不通。但这是有效的:

void headInsert(DoubleLinkList*& head, int theData)

为什么?

4

3 回答 3

3

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

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

于 2013-05-24T10:35:51.787 回答
2

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

于 2013-05-24T10:37:16.463 回答
0

从右到左阅读它们。

在第一种情况下headDoubleLinkList.

第二种情况head是对指向 a 的指针的引用DoubleLinkList

于 2013-05-24T10:42:32.923 回答