如果参数传递不使用使用指针的指针,也不使用引用。
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef struct LNode{ 5 int data; 6 struct LNode *next; 7 } LNode, *LinkList; 8 9 LNode * create(){ 10 return (LNode *)malloc(sizeof(LNode)); 11 } 12 13 void add(LinkList L, int data){ 14 LinkList p = create(); 15 p->data = data; 16 p->next = L; 17 L = p; 18 } 19 20 int main(){ 21 LinkList head = NULL; 22 for(int i = 0; i < 5; ++i){ 23 add(head, i); 24 } 25 for(LinkList p = head; p != NULL; p = p->next){ 26 printf("%d ", p->data); 27 } 28 return 0; 29 }
运行结果
结果链表里面什么都没有。
下面进行调试。
我们发现程序运行到23行,head的值是空,&head是指针head的地址0x00 18 fd cc
进入add函数