64,654
社区成员
发帖
与我相关
我的任务
分享
//指针作为参数不是可以在函数内改变它吗?为什么这个函数不行?
void insert(struct Num* head, struct Num* num){
struct Num* p = head, *q;
if (num == NULL)
return;
if (head == NULL || num->value < head->value){
num->next = head;
head = num; //在这里head被改变
return;
}
q = p->next;
while (q != NULL){
if (num->value < q->value){
p->next = num;
num->next = q;
return;
}
p = p->next;
q = p->next;
}
p->next = num;
num->next = NULL;
return;
}
struct Num* initialize(){
struct Num* head = NULL;
for (int i = 0; i < 6; ++i){
struct Num* p = new struct Num();
p->value = rand();
insert(head, p); //调用完毕后head还是NULL
cout << p->value << ' ';
}
cout << endl;
return head;
}
void insert(struct Num** head, struct Num* num){
.......
*head = num; //在这里head被改变
.......
}