作业帮 > 综合 > 作业

main( ) { int c=5;printf("%d\n",(c+=c,c+8,++c);}

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 07:51:58
main( ) { int c=5;printf("%d\n",(c+=c,c+8,++c);}
为什么答案是 11 而不是10呢
逗号表达式,计算结果是 最右一个式子.
c+=c,-- c变10
c+8 -- c不变,还是10
++c -- 前加加,要先变化再输出,c=c+1=11.
计算结果是 最右一个式子 11
再问: 说实话还是没懂。。为什么这道题就要先算c+=c 而最后++c才是最后结果呢。。。别的题不都是最后赋值或者直接算右面的么。。
再答: 逗号表达式的运算规则。 先一句一句过一遍,数值改变的变。 最后送回的是最右一个式子的结果。