在下面的代码中,为什么即使在语句j = i + 10之后j的值仍然为零。
#include <stdio.h>
int main()
{
int i = 10, j = 0;
if (i || (j=i+10))
printf("%d",j);// j=0
}
答案 0 :(得分:5)
为什么j的值不会改变?因为i
是non-zero
和logical OR (||)
属性,如果1st
操作数为true,则为&# 39; t检查2nd
操作数。
if ( i || (j=i+10))
| |
10(True) not evaluated