Я начинаю на языке программирования C, недавно я прочитал о логическом операторе AND &&
.
Я также знаю, что на языке программирования C все ненулевые значения рассматриваются как TRUE.
NON-ZERO && NON-ZERO = 1
NON-ZERO && ZERO = 0
ZERO && NON-ZERO = 0
ZERO && ZERO = 0
Но когда я имею дело со следующей программой, я не ожидаю ответа.
int main(){
int x, y, z;
x = y = z = -1;
y = ++x && ++y && ++z;
printf("x = %d, y = %d, z = %d, x, y, z);
return 0;
}
Я ожидаю
x = 0, y = 0, z = 0
но ответ
x = 0, y = 0, z = -1
Может кто-нибудь объяснить, почему я получаю этот ответ?