Операция ИЛИ и И в C

У меня есть сомнения относительно программы ниже.

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

6
задан M.M 16 May 2015 в 03:51
поделиться