a=4; b=(a++)+(a++); a,b分别等于什么

求详解

第1个回答  2012-03-01
这时其实 a的值是6
b=9;
很奇怪把。其实也简单,C++中表达式是从左到右计算的。刚开始时a先把值赋给(a++),即前面(a++)值为4,的然后才把a++的值写到a中, a变为5。同理紧跟着又有一个(a++),先把a的值5赋给(a++)。所以b=9。系统接着把(a++)==6写到a所对应的内存单元中;
你的程序后面+一句:printf();
可打印出 a=6;
b=9;
第2个回答  2012-02-29
a=6,b=8
因为是a++,所以先输出a然后a再++
即b=a+a=8,,然后a++=5,a++=6;
所以a的值为6,b的值为8本回答被提问者采纳
第3个回答  2012-02-29
a=6,b=8
在执行a++时,先使用原来的值在该语句中,当该语句完后,最后在执行加一工作。
而执行++a时,先执行加一操作,再将得到的结果在该语句中执行;
如:语句改为a=4; b=(++a)+(++a);结果分别为6,12
第4个回答  2012-02-29
执行后,a的值为6,但b的值在不同的编译系统中,结果不同。在VC++ 2010下,b的值为12。
第5个回答  2012-02-29
a=6,b=8;
因为a++的++在后面,所以在逗号前面的运算符算完了,再算a++
等价于b=a+a;
a++;
a++;

a=4; b=(a++)+(a++); a,b分别等于什么
这时其实 a的值是6 b=9;很奇怪把。其实也简单,C++中表达式是从左到右计算的。刚开始时a先把值赋给(a++),即前面(a++)值为4,的然后才把a++的值写到a中, a变为5。同理紧跟着又有一个(a++),先把a的值5赋给(a++)。所以b=9。系统接着把(a++)==6写到a所对应的内存单元中;你的...

若a=4,b=(++a)+(++a),则b是多少
b=5+6=11, 此时a=6

C语言简单问题 int b,a=4; b=a++ + a; b输出8还是9?有的编译器输出8有...
答案是8 计算过程:首先 b = a + a 然后 a++ 所以最后 a=5 b=8

int a=10, b;b=(a++)+a(++);输出a, b的结果?为什么?
你的语句有错:b=(a++)+a(++);应该是b=(a++)+(a++);输出结果a=12,因为a再次自增;b=20,因为a++的++是后缀运算,所以对于当前语句中的b=(a++)+(a++)执行时,a都作为10计算

a=4,语句b=++a+4是多少
b=++a+4 这句是先执行a的++操作,然后再执行+4,赋值给b。如果b=a+++4,结果就是8了。这句是先执行a+4赋值给b,然后a才++。如果b=++a+(++a),结果就是12了。这句是先执行所有的++a操作(执行两边++a后,a的值为6),然后再执行b=a+a操作。你就记着++在变量前边,是先执行++操作...

...++和--到底要怎么算啊? 为什么a=4,b=0 b=a+++b++ 输出b 结果为5_百...
首选b=a+++b++可以判断出a,b均为后缀的++ 等价于b=(a++)+(b++)这个话的意思又等价于 b=a+b; a=4 b=4 a++;\/\/即a=a+1 a=5 b=4 b++;\/\/即b=b+1 a=5 b=5 得出最终答案

已知int a=3 b=(++a)+(++a) 中a=? b=?
老师讲的答案是正确的。++a是a先加一在运算 a++是先运算在加一 第一个(++a)后,a=4。第二个(++a)之后,a=5.然后做最后的运算 b=(++a)+(++a)这个式子实质上是两个a的相加【因为(++a)实质上就是a=++a】综上所说,a=5 b=10 ...

d=(c=a+b,a=4,a++,b=a+1)请问在c语言中输出值a,b,c,d
a=4;c=a+b;\/\/这里的b没有初始化,会存在问题 a++;b=a+1;d=(...,b=a+1);\/\/此时的b为6 这里我用程序简单跑了一下,在codeblocks下结果与分析一致;在VS2012下程序编译就不过,它不让未初始化的变量(这里也就是b)存在等号的右边参与运算,直接就出错了。

a=3,b=(++a)+(++a)求a,b
第一个++a=3+1=4,a=4 第二个++a=4+1=5,a=5 b=4+5=9 综上,a=5,b=9

前端a=1,b=a ++ + ++a b=?
++是自加运算符,A++是在使用A之后,给A加1,而++A是使A加1后,再使用A a++值为1 ++a值为2 所以b值为3

相似回答
大家正在搜