Поскольку условие является ложным, следовательно, произойдет случай false
: c-1
, но, поскольку вы увеличили c
в условии на c++
, следовательно, c
теперь равно 12
. Таким образом, результат 12 - 1, который равен 11.
РЕДАКТИРОВАТЬ: что OP неправильно понял, был пост-приращение.
Так что на самом деле происходит так:
#include<stdio.h>
int main(void)
{
int b=12, c=11;
int d;
if (b == c) { // 12 == 11 ? -> false
c = c + 1;
d = c + 1;
} else { // this executes since condition is false
c = c + 1; // post increment -> c++ -> c = 12 now
d = c - 1; // 12 - 1 = 11 -> d = 11
}
printf("d = %i\n", d);
}