- a++等于二,为什么c++不能等于4
- 难道到最后,x为零所以不执行x=-3
第一道题是因为 if条件里面,(++b==3||c++==3)里面的++b==3为真,然后||短路或运算,即第一个表达式++b==3为真, 后面的c++=3就不执行了。所以c++不等于4.。
第二道题确实是因为x为零不执行x=3 ,为0代表即为假,所以不执行第三个if里面的x=-3的赋值运算。
测试代码如下:
#include <stdio.h>
int main(void){
int a=1,b=2,c=3;
if(a++==1&&(++b==3||c++==3)){
printf("%d%d%d\n",a,b,c);
}
int n=0,m=1,x=2;
if(!n){
x=-1;
}
if(m){
x=x+1;
}
if(x){
x=-3;
}
printf("%d",x);
return 0;
}