我正在编写一个函数来查找链表的长度。我的问题特定于指针的声明。
int lengthOfLinkedList(Node *head)
{
Node* current = head;
}
vs.
int lengthOfLinkedList(Node *head)
{
Node* current = NULL;
current = head;
}
所以这是我的理解:在第一个示例中,声明了一个指向 Node 对象的指针,并且它取消了对头指针的地址的引用。
| 内存地址 | <--- 当前
这不是我想做的。相反,我想推迟指针,以便我可以访问它指向的节点(这是我在第二个代码片段中所做的):
|数据| *下一个| <--- 当前
所以现在我认为指针在初始化它们时会有所不同 - 当您使用 ('*') 运算符初始化它时,您可以直接声明指向内存地址的指针,但在初始化后您不能再这样做了。这很奇怪。。
我是对的还是有其他事情发生?