不知道为什么add函数运行完p仍是空指针
c语言吧
全部回复
仅看楼主
level 1
2024年05月11日 14点05分 1
level 12
你这样定义函数相当于是
```c
Contact a;
Contact *p=NULL;
Contact *head=p;
head = &a;
//此时p依然指向NULL
```
不论head的值如何变都不会影响到p的值也就是p指向的地方,如果想要通过head改变p的值的话应改成二级指针
例如
```c
Contact a;
Contact *p=NULL;
Contact **head=&p;
*head = &a
//此时p指向a
```
2024年05月11日 16点05分 0
好的谢谢
2024年05月12日 01点05分
level 4
看着像个链表api函数,你需要用到二级指针才能正确分配具体原因的话,建议再去看一下指针那一章。
2024年05月11日 17点05分 3
level 10
因为p等于null,head指向p,所以head指向null
2024年05月11日 19点05分 4
回复 贴吧用户_JQZ24Q1 :head=p是head指向了指针变量p所指向的内存地址null,你是想通过借head来操控p的指向,应该写成**head=&p,这样才是head指向了指针变量p,而不是指向了p所指向的null
2024年05月12日 11点05分
简单点说就是你的手指指错了人
2024年05月12日 11点05分
所以if语句head=new是没有用的吗
2024年05月12日 01点05分
@u70e8 那我能再问问如果**head=&p,head,*head,**head都表示的是什么吗
2024年05月14日 12点05分
1