首先说明&是C++的引用
具体作用看下面两个代码示例
- 给L分配空间在函数里
#includetypedef struct Lnode { int data; struct Lnode *next; }Lnode,*linkList; void linklist_insert(linkList L) { L=(Lnode*)malloc(sizeof(Lnode)); Lnode* s; s=(Lnode*)malloc(sizeof(Lnode)); s->data=5; s->next=NULL; L->next=s; } int main() { linkList L; linklist_insert(L); Lnode *p=L->next; while (p!=NULL) { printf("%d",p->data); p=p->next; } return 0; }
2. 给L分配空间在主函数
#includetypedef struct Lnode { int data; struct Lnode *next; }Lnode,*linkList; void linklist_insert(linkList L) { Lnode* s; s=(Lnode*)malloc(sizeof(Lnode)); s->data=5; s->next=NULL; L->next=s; } int main() { linkList L; L=(Lnode*)malloc(sizeof(Lnode)); linklist_insert(L); Lnode *p=L->next; while (p!=NULL) { printf("%d",p->data); p=p->next; } return 0; }
3. 使用引用,给L分配空间在函数里
#includetypedef struct Lnode { int data; struct Lnode *next; }Lnode,*linkList; void linklist_insert(linkList &L) { L=(Lnode*)malloc(sizeof(Lnode)); Lnode* s; s=(Lnode*)malloc(sizeof(Lnode)); s->data=5; s->next=NULL; L->next=s; } int main() { linkList L; linklist_insert(L); Lnode *p=L->next; while (p!=NULL) { printf("%d",p->data); p=p->next; } return 0; }



