#include void main() { int n=1; printf("%d,%d,%d",n,++n,n--); }输出结果为是什么2 2

来源:学生作业帮助网 编辑:六六作业网 时间:2024/05/08 00:48:25
#includevoidmain(){intn=1;printf("%d,%d,%d",n,++n,n--);}输出结果为是什么22#includevoidmain(){intn=1;printf("

#include void main() { int n=1; printf("%d,%d,%d",n,++n,n--); }输出结果为是什么2 2
#include void main() { int n=1; printf("%d,%d,%d",n,++n,n--); }
输出结果为是什么2 2

#include void main() { int n=1; printf("%d,%d,%d",n,++n,n--); }输出结果为是什么2 2
我在我的编译环境中测试,结果是1,1,1.
因为在一些编译环境中,printf的执行执行顺序是颠倒的,即从右向左执行.
printf("%d,%d,%d",n,++n,n--);
所以n--先执行,此时n的值为0.因为后缀的自减操作是有“延迟的”,所以输出为1
++n第二个执行,自增操作立即生效,输出为1
n第三个执行,输出为1
所以输出为1,1,1
你可以在自己的环境中实验一下,输出结果可能会不同.