C语言的学习问题 10

来源:百度知道 编辑:UC知道 时间:2024/06/09 01:24:40
求以下程序的输出结果

希望可以说的详细一点

main()
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}

谢谢

i++是指,先使用i,再将i的值加1
++i是指,先使i的值加1,再使用它

进入while,
z=3,x=0
3>0&&1<5
(z--是指,先使用z,再将z的值减1 ,那么用的就是3,然后z=2;
++x是指,先使x的值加1,再使用它 ,那么用的就是1)
正确,y=y-1;=4;
z=2,x=1;
2>0&&2<5
正确,y=y-1;=3;
z=1,x=2;
1>0&&3<5
正确,y=y-1;=2;
z=0,x=3;
由于0>0是错的,那么就不计算后面++x<5所以x仍为3,但z要执行z--;=-1;
错,所以退出while,
printf
3 2 -1

111

3 2 -1

2 1 4

main()
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
//记住 自加自减运算符在前在后的区别即可
//按照循序一点点地看