У меня есть сомнения в программе ниже.
int main()
{
int i = -3,j = 2, k = 0,m;
m = ++i || ++j && ++k;
printf("%d %d %d %d\n", i, j, k, m);
return 0;
}
Я получаю вывод как -2 2 0 1
.
В операции ИЛИ, если 1-е значение истинно, тогда оно не будет оцениваться2-й, так что i = -2
и j =2
.Затем наступает операция И.Он проверит оба значения на true. Так что если k = 1
, то m = 1
.Таким образом, вывод должен быть -2 2 1 1
.Я бегу и проверяю и получаю вывод как -2 2 0 1
, но я не мог понять, как.