楼主你好,c语言在编译的时候使用贪吃法,(及一次读取尽量多的有意义字符)由于Mac 下使用的g++编译器在编译时由右向左读取数据,a+++a 被理解为
a+(++a)
,同理 ++a+a++ 被理解为
(++a)+(a++)
a+a++被理解为 a+(a++)
这样本题可以这样理解
b=(++a)+(a++)
计算以后
b=22,a=12
---------------
c=a+++a=a+(++a)
计算以后
c=25 a=13
d=a+(a++)
计算以后
d=26 a=14
e=a+b+c = 61
在VC环境下编译会有很大不同,因为VC从左向右编译
PS: 这种问题只有二级考试中才会有,如果你敢在工作中写出来这种代码你会被同事打死的。
——————————————————————————————————————————
如果我解决了你的问题,请按照这个帖子把问题改成已解决,这样你我都能得到技术分,谢谢
http://bbs.itheima.com/thread-85079-1-1.html |