У меня есть сомнения в программе ниже.
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
. Затем следует операция И. Он проверит, чтобы оба значения были истинными. Итак, если k = 1
, то m = 1
. Таким образом, вывод должен быть -2 2 1 1
. Я запускаю и проверяю и получаю вывод как -2 2 0 1
но я не мог понять как.