b=a++,b++,++b这个怎么看

刚接触C语言没看懂这题
int a=2,b=5;
b=a++,b++,++b;
printf("%d",a+b);
求输出结果

结果是7,这是我在编译器上验证的结果,你也可以试一下。

是这样运算的:
‘,’是逗号运算符,运算结果取最后一个表达式的值,也就是取最后++b得出的值。但是逗号运算符需要从左向右依次一个表达式一个表达式的执行,具体执行步骤如下:
1、执行b=a++,先把a的赋值给b,得到b=2,a再自加1,得到a=3.
2、执行b++,b被自加1,所以b的结果是2+1=3
3、执行++b,b被自加1,所以b的结果是3+1 = 4.
4、执行printf,结果是a+b = 3 + 4 = 7.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-23
首先你要明白a++和++a的区别:a++为执行这句之后a的值加一,++a为a的值加一再执行这句话。
其次,逗号表达式是先执行逗号之前,再执行逗号之后,赋值运算符优先级高于逗号表达式
因此:
int a=2,b=5;
b=a++,b++,++b;
//上面这句的执行过程是,b=a++:先执行a赋值给b,b=2,然后a加一等于3;b++:执行后b=3,++b:执行后b=4
printf("%d",a+b);输出a+b=3+4=7
第2个回答  2018-04-12
int a=2,b=5;
b=a++,b++,++b;
#b=a++, b=a=2, a=a+1=3
#b++, b=b+1=3
#++b, b=b+1=4
printf("%d",a+b);

#不论++a或a++,对于a来说都是a=a+1
#对于b = a++, 先把a值赋给b,再计算a=a+1
#对于b = ++a, 先计算a=a+1,再把a值赋给b

第3个回答  2018-04-12
逗号表达式:
顺序计算b=a++;[b=2,a=2+1=3] b++;[b=2+1=3] ++b;[b=3+1=4]
[a+b=3+4=7]
第4个回答  2010-01-23
b=a++,(b=2,a=3),b++,(b=3),++b,(b=4)
a+b=7.

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网