哪一行出错了?

sweetswing 2019-05-11 03:17:19
what is the output of this code?
typedef struct{
int age;
char name[20];
}Person;

Person p={25,"John"};
Person *ptr=&p;
printf("%d",ptr->a);


A 25
B John
C Error
D Address of p

正确答案是C

Person *ptr=&p; 看不懂,一个指针?
printf("%d",ptr->a);看不懂,a是一个对象?

这哪一行出错了?
...全文
243 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
明殇离兮 2019-05-15
  • 打赏
  • 举报
回复
ptr没有指向呀,a没有定义,当然错误了
CaptainXue 2019-05-12
  • 打赏
  • 举报
回复
Person *ptr=&p的含义是定义一个名为ptr的结构体类型为Person的指针变量,它指向结构体p的地址,也就是说ptr的值就是结构体p的值,而ptr->a表示访问结构体ptr的成员a的值,但是我们的结构体类型中没有成员a,所以,运行结果是error,也就是错误的意思,再有什么不懂的可以问我😯,多交流学习
636f6c696e 2019-05-12
  • 打赏
  • 举报
回复
看你发的帖子挺多的,结帖率也很高,相比其它很多发帖的用户而言是很良心、很自觉了,所以给你一个小小的建议:远离这类无厘头的题目吧。 说得挺好的,这类题目质量真心太低了,都看不出考点在哪里,你说这题目难道就是告诉你结构体成员没有a,他写个a从而是个编译错误么?
六道佩恩 2019-05-11
  • 打赏
  • 举报
回复
ptr->age,表示ptr所指的结构体变量里的成员age,而代码中是ptr->a,显然没有成员a,所以错误。
自信男孩 2019-05-11
  • 打赏
  • 举报
回复
结构体成员里哪来的a成员呢
拥抱Linux 2019-05-11
  • 打赏
  • 举报
回复
(1)定义一个指针,并初始化。
(2)结构体中没有名为 「a」 的成员,编译通不过,结果就是「 错误 == Error 」。

看你发的帖子挺多的,结帖率也很高,相比其它很多发帖的用户而言是很良心、很自觉了,所以给你一个小小的建议:远离这类无厘头的题目吧。
其实,之前你发过的一个帖子里,有一些大佬已经建议过你,不要再执迷于上面这样的钻牛角尖、无意义的题目了,但是好像你还是一如既往地钻研这些题目。正如上面一句说的,也是觉得你的学习态度、发帖态度很好,所以小小地建议一下。
至于说,不做这些题目那该怎么学习和研究呢?俺不敢说大话,但是至少有一点是认同的,那就是「务必要实践!」。
也就是说,有功夫把题目敲出来、发帖,事先干脆把代码敲到编译器里,自己试一试、跑一跑,调试调试,再遇到搞不懂的时候才提出有针对性的问题。这样,既有 实践,又有 思考,还有 总结, 学习效果应该会好得多。
周末ZhouMo 2019-05-11
  • 打赏
  • 举报
回复
结构体里面没有a变量,ptr指不上

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧