执行语句int a,b,c; a=(b=c=3, c++, b+=c);则a的值是?请说明理由

来源:百度知道 编辑:UC知道 时间:2024/05/16 10:45:42

a=7
逗号表达式
其一般形式为: 表达式1,表达式2 其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。

把逗号表达式扩展为以下形式: 表达式1,表达式2,…表达式n 整个逗号表达式的值等于表达式n的值

执行分析: 先执行括号中的,首先给变量b ,c赋值,此时b=3,c=3;
再执行C++,此时c=4,执行b+=c,此时b=7,c=4;最后执行a=(b+=c),把b的值赋值给a,a=7

i think
a 为7,b为7,c为4

逗号表达式,取最后面一个结果
B=C=3; // B=3,C=3
C++; // C=4
B+=C; // B=B+C=3+4=7

所以结果:A=7

首先执行b=c=3,
然后执行c++,//c=4
最后执行 b+=c//该表达式返回7
所以a=7

可以写成这样:
int a,b,c;
b=3;
c=3;
c=c+1;
b=b+c;
a=b;
这样写谁都可以看出来了。