为什么链表初始化时,要用双重指针?

来源:互联网 发布:苹果系统炒股软件 编辑:程序博客网 时间:2024/05/16 06:24
typedef DataType inttypedef struct Node{ DataType data; struct Node *next;}LNode,*PNode,*LinkList;int Initial(LinkList *h){  //参数为头结点指针的地址,也就是指针的指针   *h=(LinkList)malloc(sizeof(LNode));  //将申请的空间头地址储存在头结点指针中   if(!h){      //这个地方就奇怪了?为什么判断的是h,而不是*h呢?h在传递进来的时候不是早就有了    printf("初始化链表错误\n");    return 0;   }   *h->next =NULL;   return 0;}

    为什么初始化函数用的双重指针,简单的说只有一句话:就是在子函数中传递指针时,子函数的形参要用指针的地址,就是双重指针,也叫二级指针。

另外,终于知道CSDN怎么写C代码了。呵呵,有专门的选项。

原创粉丝点击