作业帮 > 综合 > 作业

求讲解输出 #include void main() { int x; printf("%d\n",(x=5*8,x*2

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/05 04:43:33
求讲解输出 #include void main() { int x; printf("%d\n",(x=5*8,x*2,x+20)); }输出结果为60
求讲解输出 #include void main() { int x; printf(
这个考的是逗号操作符
逗号表达式的结果是其最右边表达式的值,计算方式由左至右依次计算
首先x=40
然后x*2(对x不产生影响)
最后输出x+20,即为60
再问: #include void fun(int i1,int i2,int i3) {printf("%d %d %d",i1,i2,i3);} int main() {int i=10; fun(i++,i++,i++); return 0; } 求讲解这个程序
再答: i++是先取值操作后再自增 在vc的编译环境下其结果是10 10 10 从反汇编之后的代码来看,在传参的时候将i的值压栈3次之后才进行的自增,也就是说,传参的时候都是10。 如果改成++i,++i,++i则结果会根据编译器不同有所变化