初学者,问最后x的值的问题。谢谢帮忙
问一下
#include "stdio.h"
void main()
{
int x=30;
printf("x in outer block:%d\n",x);
{
int x=77;
printf("x in inter block:%d\n",x);
}
printf("x in inter block:%d\n",x);
while(x++<33)
{
int x=100;
x++;
printf("x in while loop: %d\n",x);
}
printf("x in inter block:%d\n",x);
return 0;
}
运行出来后 为什么x=34 而不是33呢 ?
[解决办法]
x=33的时候,x++<33 退出,那么x=34.
[解决办法]
x++返回当前值,执行后x=x+1
while(x++<33)
当x==33时,while条件不满足,跳出,然后x=x+1=34
[解决办法]
while(x++<33)
{
int x=100;
x++;
printf("x in while loop: %d\n",x);
}
从x=32时,32<33为true,进入循环,但执行while判断时,x++<33,x++,此时已经x=33了。
执行完循环体部分,判断下次循环,同样判断x++<33,判断结果是33<33为false,然后结束循环,但由于x++,跳出循环时x=34了。