【发布时间】:2013-07-22 06:48:55
【问题描述】:
我正在尝试用 C 语言对链表进行一些操作。我是一个新手,对函数append() 有点困惑。
他们在函数中传递了参数,例如struct node **q。他们将它与*q 一起使用。
C语言中的函数append():
void append(struct node **q, int num) {
struct node *temp, *r;
if(*q==NULL) {
temp=malloc(sizeof(struct node));
temp->data=num;
temp->link=NULL;
*q=temp;
}
else {
temp=*q;
while(temp->link!=NULL)
temp=temp->link;
r=malloc(sizeof(struct node));
r->data=num;
r->link=NULL;
temp->link=r;
}
}
我无法理解:-
- 为什么他们在参数中使用
**q,在代码部分使用*q? - 有什么区别?和
- 最好的方法是什么?
任何帮助将不胜感激。
【问题讨论】:
-
首先请注意我是如何在不更改单个单词的情况下向您提出问题的。其次让我知道您是否在功能上清楚 append() 函数 ?
-
你的问题号 2 应该是问题号 1
标签: c pointers data-structures linked-list