int a,b,c; a=(b=c=5,++b,b+(c++)) 最后算出abc为多少是C语言中的题目该怎么算详细说下

如题所述

这个是关于逗号表达式,整体的值就是最后一个式子的值;
看你的代码:a=(b=c=5,++b,b+(c++)),顺序是由左向右运算,首先给b,c赋值,b,c均为5,然后++b,此时b的值为6,而c的值依然是5,接着b+(c++),先算括号中的C++,因此括号的整体值为5,而c的值为6,接着运算b+括号的值为11,到此整个表达式的值就为11,即a的值为11,所以输出的是a=11,b=6,c=6;
就这么多!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-17
根据计算顺序:
a=(b=c=5,++b,b+(c++))
先算()
再算b=c=5,(b=5,c=5)
再算++b,(b=6)
再算a=b+c,(a=11)
最后,算c++,(c=6)
第2个回答  2010-11-17
逗号运算符优先级低且按顺序执行:
a=b=5
++b后b=6
b+(c++)等于11,c等于6
最后a等于最后一个逗号表达式即a=11
第3个回答  2010-11-17
表达式1,表达式2
求解过程是:先解表达式1,再求表达式2。
整个表达式的值是表达式2的值
赋值运算符的优先级高于逗号达式
b=5 c=5
b++ ->b=6
6+5=11
c=6
结果a=(5,6,11)
a=11 b=5 c=6