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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© to_love   /  2015-8-22 14:14  /  3194 人查看  /  39 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

16,9确实是正解,b=(++a)+(a++),  a=7,分析思路;
                                  1         2
表达式1的值8,此时a的值为8,进行下一步运算,a++中a的值为8了,,表达式的值也为8,所以,b=8+8=16,
a的值自增两次,即a=9.之前错误的理解了a++的值,忽略了运算顺序,当++a进行运算时,a值发生变化了,后面传递给++a时就发生变化了。
回复 使用道具 举报
b=16,a=9。++a的值为8,a的值也为8,先变后用。a++的值为8,a变成9,想用后变。
回复 使用道具 举报
后面的输出是C语言的吧,a=9,b=16
回复 使用道具 举报
++a是先自加,再参与运算,所以++a等于8 ,a++是先参与计算再进行自加,所以a++等于8,所以b=16,最后a再自加一次,故a=9
回复 使用道具 举报
b=16 a=9,因为++a的值为8,此时a的值为8,a++的值为8(因为前面的表达式将a的值修改为了8,a++为先返回表达式的值然后再进行计算),此时a的值为9
回复 使用道具 举报
输出为:b=16,a=9
回复 使用道具 举报
b=16,a=9
回复 使用道具 举报
第一个++a,a=7+1=8,到a++,先用后加,所以相当于b=7+1+(7+1)=16,a在语句执行以后再+1=9
所以输出b=16,a=9
回复 使用道具 举报
a加了两次,所以a为9,b为16,不过windows下和Mac,不同的系统编译器不同,所以,b的结果就不一样,学OC的话,就以Mac编译的为标准
回复 使用道具 举报
aidan 中级黑马 2015-8-29 10:43:34
30#
i++  先使用i后自增,++i 先自增后使用i
回复 使用道具 举报
a++先取值,b=16 a=9
回复 使用道具 举报
b=16,a=9
回复 使用道具 举报
等于15   加就先加
回复 使用道具 举报
分别是16、9
回复 使用道具 举报
XLX 中级黑马 2015-8-31 23:28:15
35#
各位大神求解devc++软件运行结果为何会是如此?

额.jpg (124.59 KB, 下载次数: 49)

额.jpg
回复 使用道具 举报
始终记着不管是a++还是++a,a的值始终+1,a++表达式的值不加1,++a表达式的值+1.
回复 使用道具 举报
16,9
先执行++a       8
在实行a++       8          9
结果     8+8=16     a=9
回复 使用道具 举报
b=9+7,a=9,++a,a自增之后的值,a++是a自增之前的值,,,
回复 使用道具 举报
8楼正解~
回复 使用道具 举报
a=7,++a表达式的值为8,a被赋值为8;a++表达式的值为8,a被赋值为9;所以b=16。输出:b=16, a=9
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马