为什么j的值不会改变?

时间:2018-04-14 13:09:27

标签: c

在下面的代码中,为什么即使在语句j = i + 10之后j的值仍然为零。

#include <stdio.h>
int main()
{
 int i = 10, j = 0;
 if (i || (j=i+10))
   printf("%d",j);// j=0
}

1 个答案:

答案 0 :(得分:5)

为什么j的值不会改变?因为inon-zerological OR (||)属性,如果1st操作数为true,则为&# 39; t检查2nd操作数。

if ( i    ||  (j=i+10))
     |           |             
    10(True)   not evaluated