求解释,为什么
第一个判断为假
int a=0,b=1,d=10;
if(a) if(b) d=20;
else d=30;
printf("%d\n",d);
因为else总是与跟他最近的if配对,所以上述的代码际上等价于下边的代码:
int a=0,b=1,d=10;
if(a)
{
if(b) d=20;
else d=30;
}
printf("%d\n",d);
因为a=0,if(a)为假,所以大括号内的所有赋值语句均未执行。所以d值不变,仍旧是10.
一般判断表达式真假:非零即为真。
if(a) if(b) d=20;
else d=30;
printf("%d\n",d);
因为else总是与跟他最近的if配对,所以上述的代码际上等价于下边的代码:
int a=0,b=1,d=10;
if(a)
{
if(b) d=20;
else d=30;
}
printf("%d\n",d);
因为a=0,if(a)为假,所以大括号内的所有赋值语句均未执行。所以d值不变,仍旧是10.
一般判断表达式真假:非零即为真。
温馨提示:答案为网友推荐,仅供参考