c语言条件语句问题求解

img


c语言条件语句问题求解
不是很懂如何判断x++这个条件,求朋友们指点一二,

a
在if语句中,使用了后缀自增运算符x++,这表示先使用x的值,再将x的值加1。因为x的初始值为0,所以if语句的条件判断结果为false,执行else if语句块中的代码,输出"false"。

如果if语句中的条件使用了前缀自增运算符++x,表示先将x的值加1,再使用x的值进行条件判断。在这种情况下,if语句的条件判断结果为true,将执行if语句块中的代码,输出"true"。

int x=0;
if(x++)
上面这2句等同于下面这4句:
int x=0;
int tmp=x;
x=x+1;
if(tmp !=0)
所以你就明白tmp=0 ,x=1,然后没进if而进else

其实就等价于
if(x){
x++;
...
}
因为x++里的++优先级比赋值要低,所以会先取值进行判断,后执行++操作
如果是if(++x)
那么等价于
++x;
if(x){...}