int a=5,b;b=(++a)+(a++),怎么计算?

如题所述

b=(++a)+(a++);
一个++在变量前,一个是在变量后
所以
相当于三句:
++a;
b=a+a;
a++;
所以最后

b=a+a==6+6==12;//因为a自增了一次后就用a的值,所以此时a的值是6
a==7;//再自增一次,就从6变成7追问

那个7是什么意思?有用吗?

追答

如果你想在最后用a的值,那他就是7,如果你不想用变量a,那么这个值当然就没用啦。

追问

哎呀,还是不懂,最后a的值不是不用了吗?

追答

比如这样哈:
int a=5,b,c;//我加多一个变量c
b=(++a)+(a++);
c=2*a;//c的值我设为a的2倍
那么你看,这时,c的值就应该是14,为什么呢,因为a的值是7,不管你用不用这个7,他都是存在的

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-07
a=5,
b=(++a)+(a++)
++a是先加后计算 a++是先计算后加
即:先算++a a=6
再算:b=a+a=12;
最后算:a++=7;
第2个回答  2013-04-07
a=7,b=12,++a的结果是本来的a+1,a++的结果是a,但不管是a++还是++a,a都会+1
第3个回答  2019-03-23
C语言和Java运算不同,b相当于b=a+a,即先计算++a=6,相当于a=6,再计算a++=6,即a仍然是6,然后b=6+6;
Java中如果b=++a*--a先计算++a=6,--a=5,b=6*5=30;C语言中b=25。
第4个回答  2013-04-07
a 右边表达式
5
6
6 6
6 12
7 12

int a=5,b;b=(++a)+(a++),怎么计算?
++a;b=a+a;a++;所以最后 b=a+a==6+6==12;\/\/因为a自增了一次后就用a的值,所以此时a的值是6 a==7;\/\/再自增一次,就从6变成7

int a=5,b; b=(++a)+(a++); ++a 6 a++ 7 此时b的值是不是13?
a初始为5.++a 先前置自加. 于是a=6 这时取值a+a=6+6=12 然后才是后置自加 a=7 所以b=12

int a=5,b b=(++a)+(++a),为什么b是14
int a=5,b;b=(++a)+(++a);由于++在变量的前面,所以应该先让a变量自增,再用自增后的值 由于有两个++a 所以 b=(++a)+(++a);这句相当于三句:++a;++a;b=a+a;上面两句运行完之后,a的值肯定是7,因为自增了两次 所以最后 b=a+a=7+7==14 ...

int a=5,b=(++a)+(++a)+(++a)怎么计算?
include <iostream>using namespace std;int main(){int a = 5;int b = (++a) + (++a) + (++a);int a1 = 5;int b1 = (++a1) + (++a1);cout <<"a:"<< a << endl <<"(++a) + (++a) + (++a):" <<b << endl;cout << "a1:" << a1 << endl <<"(++a1)...

...void main() { int a=5,b;b=(++a)+(++a); printf("%d",b); } 运...
b=(++a)+(++a);即先执行最右面的++a,得到a的结果为6.然后再计算第一个++a,此时的计算基础为6,得到结果为7.这时前后结果就是两个7相加。所以结果为14.这里要注意的就是要把a看成是一个主体。不要用6和7相加,要知道任意一步对a的操作都会影响a的值。理解了吗?

int a=5,b;b=(++a)+(++a)+(a++);printf("%d,%d",b,a)
b=6+7+7 a=8 所以结果是输出:20,8

int a=5,b; b=++a*++a ;printf(“%d”,b);
49 先逐步自增再统一取值

...main(void) { int a = 5,b; b=(++a)+(++a)(++a); printf("%d\\n",b...
main(void)错了,应为int main(void)或者void main(void)括号里的void可有可无;b=(++a)+(++a)(++a); 这条语句也错了,(++a)(++a)中间应该有个乘号,乘号是不能省略的

int a=5; b= a++, c= a++;结果
int x,a,b,c;x = (a = 5, b=a++,c=++a,456,789);\/\/肯定先从括号中开始算起。\/\/a刚开始等于5 \/\/b=a++,++运算在后,先算后加,先把a的5给b,然后把a加1,此时b为5,a为6 \/\/c=++a,++运算在前,先加后算,因为上一个式子a已经是6了,所以a再加1,变成7,再给c,...

int A=5,B;B=(A=2)+(++A);(A=2和++A执行顺序不是确定的)通过分解表达式...
括号内是对A的赋值运算,括号外是对B的赋值运算,括号内运行结束后,输出的就是A的值 ,A在内存是唯一,运算顺序是:B=A+(++A) \/\/A=2;B=A+A \/\/A=3;B=6 \/\/A=3;

相似回答