先看一道题,代码如下:
int i = 0;
int j = 0;
if((++i > 0) || (++j > 0))
{
printf("%d,%d\n",i,j);
}
结果为i = 1; j = 0。
跟预想的不太一样,然后根据书本作者的解释才明白:
逻辑运算符只要有一个结果为真,那么结果就为真。而if((++i > 0) || (++j > 0))语句中,(++i > 0)结果为真,那么后面的(++j > 0)便不再计算。
同样&&运算符也一样。
先看一道题,代码如下:
int i = 0;
int j = 0;
if((++i > 0) || (++j > 0))
{
printf("%d,%d\n",i,j);
}
结果为i = 1; j = 0。
跟预想的不太一样,然后根据书本作者的解释才明白:
逻辑运算符只要有一个结果为真,那么结果就为真。而if((++i > 0) || (++j > 0))语句中,(++i > 0)结果为真,那么后面的(++j > 0)便不再计算。
同样&&运算符也一样。