У меня есть сомнения относительно программы ниже.
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
, но я не мог понять, как это сделать.