A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 飞翔的猪   /  2015-5-9 15:16  /  4130 人查看  /  51 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

wangzhewjl 发表于 2015-5-10 08:23
你都用括号括起来了。括号优先 先把括号里面算完再进行加法;int b=(++a)+(a++);第一步先算(++a) 结果是 ...

嗯嗯,的确,不同的编译器是不同的,我还是相信gcc 和mj老师嘿嘿
回复 使用道具 举报
xiaofei93 发表于 2015-5-10 07:53
int b=(++a)+(a++); = 11+11 = 22 ,++a之后括号内是11,a也是11;有a++的地方可以把a++直接换成a的值,因 ...

嗯嗯,我明白这个的原理,只是被编译器给忽悠了,谢谢版主
回复 使用道具 举报
应该是编译器问题

EEF4FF32-86B2-4000-AF7D-3BD4AD4B9EBC.png (47.39 KB, 下载次数: 49)

EEF4FF32-86B2-4000-AF7D-3BD4AD4B9EBC.png
回复 使用道具 举报
windows 就是一个坑, 还是用 Xcode 靠谱啊.
回复 使用道具 举报
你错了吧,运行的结果明显是22,怎么可能是23呢?首先++a时先自增后运算,所以运算的时候应该是11,a++是先运算后自增,所以运算的时候也是11,那么b 的运算结果肯定是22,这个时候a=12.我字啊Xcode里面的运行也是22呢,你的运行结果为什么是23?
回复 使用道具 举报
为什么不能是24呢,也可以啊
回复 使用道具 举报
++a是a先加1然后再赋值,也就是++a的结果是11,此时a的值也是11。然后再运算a++,此时是先把a的值给运算结果,也就是a++的值是11,a的值则变成了12.所以最后的结果应该是22
回复 使用道具 举报
学习学习!
回复 使用道具 举报
我也觉得应该是22呀,求大神指导
回复 使用道具 举报
很容易理解的 ,例如  int a = 10 , a++  是等于 11的 但是这是 a是等于10 的。 ++a也是等于11 不过这是a是等于11的。
回复 使用道具 举报
我也觉得是22啊,++a之后a=11,a++之后a=11,应该是22吧
回复 使用道具 举报
你试了么。。。应该是11+11=22,
回复 使用道具 举报
这个明明b=22,执行++a的时候此时a=11,在执行a++的时候是根据前一个++a执行之后a的结果,所以此时a还是11,所以b=22
回复 使用道具 举报
++a是a的值加1而且加1之后的这个值参与表达式计算中 a++是也是a的值加1,大师a的值加1后不参与表达式的计算中。
回复 使用道具 举报
先算括号里的啊!()优先级高!也就是 11+12=23
回复 使用道具 举报
T-fra 中级黑马 2015-5-10 22:47:20
36#
说22的没看懂视频 的
回复 使用道具 举报
用断点  走一遍就知道了
回复 使用道具 举报
星空眼泪 发表于 2015-5-10 12:08
你错了吧,运行的结果明显是22,怎么可能是23呢?首先++a时先自增后运算,所以运算的时候应该是11,a++是先 ...

因为我用的devc++ windows下的编译器,。。。。
回复 使用道具 举报
xiongmaoren518 发表于 2015-5-10 13:55
我也觉得应该是22呀,求大神指导

编译器的问题,我证实了。。再也不用windows下的编译器了
回复 使用道具 举报
649678291 发表于 2015-5-10 10:28
应该是编译器问题

对 ,是编译器的问题,windows下的devc++
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马