关于结构体指针p、p->value、p->next三者的关系

p是一个结构体指针,p->value是p所指向的结构体的数据域,p->next是p所指向的结构体的指针域,那他们三者之间的关系是什么?p->next与p->value以及... p是一个结构体指针,p->value是p所指向的结构体的数据域,p->next是p所指向的结构体的指针域,那他们三者之间的关系是什么?p->next与p->value以及p三者的地址相同吗?p与p->next可以相互赋值,但它们为什么可以相互赋值呢? 展开
 我来答
匿名用户
推荐于2016-02-10
展开全部
#include <stdio.h>
struct node
{
//double sum;
int value;
node* next; //next的类型是node型的指针即node*
};
int main()
{
node *p=new node(); //从这里可以看出 p的类型与next 类型相同 ,所以可以相互赋值
p->value=3; //首先 p->value的类型是value的类型,在这里就是int型,不是一个指针
p->next=0;
/*因为p是指向结构体开始的位置,所以这里p的地址和p->value的地址(不是p->value的值)
应该相等,但是并不总是相等,例如在结构体中多定义一个结构他们就不相等了。至于p-next
的地址,如果它不是结构开始的位置就不等于p*/
node *p1=new node();
p1->value=4;
p1->next=p;

node* p2=p1;
while(p2!=NULL)
{
printf("%d\n",p2->value);
p2=p2->next;
}
return 0;
}
追问
tail是尾指针,{tail->next=p;tail=p}这两条语句的含义又是什么呢?
追答
虽然我没有看到完整的代码,不过应该是在链表尾部加入一个节点。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式