#include <stdio.h>
void main()
{
int x = 1, y = 0, z = 5;
int a = x && y || z++;
printf("%d", z);
}
在执行时,以下程序将输出预期为6。 但是这个程序
#include <stdio.h>
void main()
{
int x = 1, y = 0, z = 5;
int a = x && y && z++;
printf("%d", z);
}
给出的输出为5。任何人都可以解释此输出。我对增量前和增量后运算符有很好的了解,但无法弄清楚该输出。
答案 0 :(得分:0)
在C中,在
a = f(x) && g(y)
如果f(x)的值为0,那么无论g(y)是多少,我们都知道a将始终为0。因此,不会评估g(y),并且不会发生g(y)的任何副作用。
对于您而言,这意味着增量永远不会发生。