Skrót ORA w przypadku operatora przyrost / dekrementacja
W poniższym kodzie:
#include <stdio.h>
int main()
{
int a = 1;
int b = 1;
int c = a || --b;
int d = a-- && --b;
printf("a = %d, b = %d, c = %d, d = %d", a, b, c, d);
return 0;
}
spodziewałem się, że wynik będzie:
a = 0, b = 1, c = 1, d = 0
ponieważ z powodu zwarcia w linii poniżej, tj. a-- zwraca 0, więc druga część nie zostanie wykonana prawidłowo?
int d = a-- && --b;
Dane wyjściowe to:
a = 0, b = 0, c = 1, d = 0
czy ktoś może wyjaśnić?