C语言链表的问题,高手进来看一下哈!

#include<stdio.h>#include<stdlib.h>#defineNULL0voidmain(){structlinklist{intdata;char... #include<stdio.h>
#include<stdlib.h>
#define NULL 0
void main()
{
struct linklist
{
int data;
char id[10];
struct linklist *next;
};
struct linklist *head,*p;
head=NULL;
p=(struct linklist *)malloc(sizeof(struct linklist));
scanf("%d",&p->data);
scanf("%d",&p->id);
}
问题一:head=NULL; head是指针变量,NULL也是指针变量; 那我奇怪了:既然是指针变量,那干嘛程序的开头会有:#define NULL 0;有了这个也就是说 给指针变量 head 赋值一个 “0” 这怎么可能!!!!!指针变量不是应该赋地址的吗????

问题二:最后面的那两个赋值语句应该改成这样吧:scanf("%d",p->data)
scanf("%d",p->id) 应该把它们的取址符 “&” 去掉吧! 因为 p 是指针变量,它里面存放的就是地址啊!!!所以就没必要加取址符了啊!!是吗?还是我理解错误?????????
展开
 我来答
wuzongxian0010
2012-05-16 · TA获得超过797个赞
知道小有建树答主
回答量:433
采纳率:100%
帮助的人:371万
展开全部
1,地址为0是可以的,代表无效地址
2,p->data要加&,p->id不用加
troy0215
2012-05-16 · TA获得超过231个赞
知道小有建树答主
回答量:310
采纳率:0%
帮助的人:327万
展开全部
答案一:地址是0.
答案二:->的优先级应该比&高
追问
那 id  是数组名啊!应该不用加&了吧!???????????
追答
自己动手调试一下印象比较深~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钓享展p
2012-05-16 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:179万
展开全部
好好再翻一遍C
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式