在为 Linked List 编写 add 函数时,我想出了以下代码
int addNode(node ** head)
{
1. node * ptr = *head;
if(ptr==NULL)
{
ptr = (node *)malloc(sizeof(node));
ptr->next = NULL;
ptr->val = (char *)malloc(10);
strcpy(ptr->val,"1");
2. *head = ptr;
}//Rest omitted
现在就我对指针指针的理解而言,当我调用这个函数时
添加节点(&n)
(n定义为节点*n)我发送指针n的地址。头 = &n 到现在为止?在 1 我使 ptr 指向 n 即 ptr = &n? 那正确吗?我不明白为什么我需要设置 *head = ptr?ptr 不是已经直接对 n 进行更改了吗?而且 ptr 和 *head 不都指向 n 吗?
谢谢!