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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chunjiang 中级黑马   /  2015-9-7 04:37  /  1259 人查看  /  19 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a = 3,b = 0;
b = a+++a+++++a;
求a,b的值?

19 个回复

倒序浏览
没人吗?这个题一下子弄的自己对自增自减疑惑了
回复 使用道具 举报
b = (a++)+(a++)+(++a)
回复 使用道具 举报

然后呢,你得出来b的值是多少?
回复 使用道具 举报
chunjiang 发表于 2015-9-7 14:11
然后呢,你得出来b的值是多少?

最后b的值是3+4+5=12~
回复 使用道具 举报
lionheartism 发表于 2015-9-7 16:52
最后b的值是3+4+5=12~

可答案却是13
回复 使用道具 举报

你看看,VS编译结果
回复 使用道具 举报
同学你这在Xcode中连编译都通不过,,话说这种题目在实际编程中一点用都没有,学习不能太钻牛角尖了。。

Snip20150907_44.png (19.15 KB, 下载次数: 12)

Snip20150907_44.png
回复 使用道具 举报
lionheartism 发表于 2015-9-7 19:40
你看看,VS编译结果

把b换成c,c=a+++a+++++a
回复 使用道具 举报
TonyScript 发表于 2015-9-7 19:46
同学你这在Xcode中连编译都通不过,,话说这种题目在实际编程中一点用都没有,学习不能太钻牛角尖了。。 ...

把b换成c,c=a+++a+++++a,来解释下,为什么会有那样的结果
回复 使用道具 举报
chunjiang 发表于 2015-9-7 21:38
把b换成c,c=a+++a+++++a

如果换成如你所说的话,那么就不再存在自增自减运算符了,+号变成了单目的正和双目的加,最后结果是9
就是a+两个正a
回复 使用道具 举报
lionheartism 发表于 2015-9-8 07:53
如果换成如你所说的话,那么就不再存在自增自减运算符了,+号变成了单目的正和双目的加,最后结果是9
就 ...

c = (a++)+(a++)+(++a);
结果?
回复 使用道具 举报
chunjiang 发表于 2015-9-8 10:41
c = (a++)+(a++)+(++a);
结果?

括号里的优先级高先计算,+号又是左结合那么计算顺序就是 a++ a++ ++a,第一步,a++的返回值是3,此步过后a值变4;第二步,a++的返回值是4,此步过后值为5;第三部,++a的返回值是6,此步过后a值为6,最后结果就是3+4+6=13;
回复 使用道具 举报
b=a++ + a++ + ++a=3+4+6=13
回复 使用道具 举报
TonyScript 发表于 2015-9-7 19:46
同学你这在Xcode中连编译都通不过,,话说这种题目在实际编程中一点用都没有,学习不能太钻牛角尖了。。 ...

加上空格就能编译了~
回复 使用道具 举报
coding_wang 发表于 2015-9-8 16:20
加上空格就能编译了~

我是复制他的原贴的,改了不尊重原作者,,重点是这种东西没意思
回复 使用道具 举报
确定没写错?Xcode报错了

QQ20150908-1@2x.png (54.95 KB, 下载次数: 9)

QQ20150908-1@2x.png
回复 使用道具 举报
理解的不能!
回复 使用道具 举报
b=3+4+6=13
回复 使用道具 举报
同求啊,求大神解释
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马