作业帮 > 综合 > 作业

void main() { inta,b=1 a=(b+4,b+=2,++b); printf("%d",a);

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 23:29:01
void main() { inta,b=1 a=(b+4,b+=2,++b); printf("%d",a);
答案为4 ,逗号运算符先运算表达式1:b+4其值为5,整个为真的话整个表达式就等于(b+=2,++b)此处又是逗号运算符,b+=2的值为三b的值也为3,后面++b为4,b值也为4所以a=4
再问: 那为什么不执行b+4 谢谢 逗号表达式不是只执行最后一个表达式的值吗
再答: b+4其实会执行的,只是他的值为真,且对b没有赋值,他要被舍弃。逗号运算符的值是逗号后面的表达式的值