(p).data,p->data和p区别?struct LNode *p?
P是结构体指针
void list_headinsert(linklist &L1)
{
linklist s;
int x;
L1=(linklist)malloc(sizeof(LNode));
panduan1(L1);//判断头结是否分配内存了,把(*L1).next中的地址改为null。
printf("%d\n",L1->next);//改为null了
printf("%d\n",L1->data);//改为null了
scanf("%d",&x);
while(x!=999)
{
s=(linklist)malloc(sizeof(LNode));
s->data=x;
s->next=L1->next;
L1->next=s;
scanf("%d",&x);
}
printf("%d\n",L1->data);//改为null了
printf("%d\n",*L1);//改为null了
printf("%d\n\n",L1->next);//改为null了
return;
}
int main()
{
linklist L1,L2;
list_headinsert(L1);
list_tailinsert(L2);
}
问题是: L1和L1->data的结果不一样,L1是解引用L1中存放的地址所对应的一块结构体空间的首地址,即(*L1).data的内容,和L1->data是一个意思,应该值也是一样的才对。但是我这边结果不一样,不知道为什么,是我理解错了嘛。