c语言中->和.的区别

&p->id和p.id一样吗&p->id和&p.id一样吗... &p->id和p.id一样吗
&p->id和&p.id一样吗
展开
 我来答
仁昌爱娱乐
高粉答主

2019-09-24 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459819

向TA提问 私信TA
展开全部

c语言中->和.的区别为:性质不同、指向不同、访问不同。

一、性质不同

1、->:->是指向结构体成员运算符。

2、.:.是断点符号,不属于运算符。

二、指向不同

1、->:->所指向的是结构体或对象的首地址。

2、.:.所指向的是结构体或对象。

三、访问不同

1、->:->的用处是使用一个指向以便访问结构体或对象其内成员。

2、.:.的用处是使用一个指向以便访问结构体或对象。

参考资料来源:

百度百科——->

百度百科——点

小星星教育知识分享
高粉答主

2019-12-10 · 用教师的智慧点燃学生的智慧火花
小星星教育知识分享
采纳数:202 获赞数:67135

向TA提问 私信TA
展开全部

1、指向不同

一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。

而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。

否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。

2、读法不同

(*a).b 等价于 a->b。"."一般情况下读作"的”。

“->”一般读作"指向的结构体的"。

3、作用的不同

在“结构”一单元中出现的->运算符成为“右箭头选择”,在使用中可以用new_node->value = 10;来代替(*new_code).value = 10;

也就是说在结构中,运算符->是运算符*和运算符.的结合,在上述语句中,他先对new_node间接寻址以定位所指向的结构,然后再选择结构的成员value。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慎重还明快丶东风o
2009-09-21 · TA获得超过236个赞
知道小有建树答主
回答量:336
采纳率:71%
帮助的人:188万
展开全部
->是指针引用数据用的,. 是普通的变量引用数据用的;
&p->id和p.id是不一样的,前者是取id的地址,后者是取id的值;
&p->id和&p.id是一样的,都是取id的地址,因为->和.的优先级都比&高,但这里面的p是不一样的,前者是指针变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cbeceb382
推荐于2017-09-27 · TA获得超过213个赞
知道答主
回答量:64
采纳率:0%
帮助的人:55.9万
展开全部
唯一的区别是->前面放的是指针,而.前面跟的是结构体变量,如已定义了一个结构体struct student,里面有一个int a;然后有一个结构体变量struct student stu及结构体变量指针struct student *p;且有p=&stu,那么p->a和stu.a表示同一个意思
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-04-26
展开全部
C语言中的'.' 是直接引用;
C语言中的'->'是间接引用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式