Почему оператор постдекремента в следующем коде C не работает должным образом? (иметь значение 7)

Почему оператор постдекремента в следующем коде C не работает должным образом? (иметь значение 7). Зная, что это не неопределенное поведение.

#include<stdio.h>
    int main()
    {
    int a = 8, r;
    r = (a==8) || (a--);
    printf("a = %d\n", a);
    return 0;
    }

person Kasra    schedule 26.10.2018    source источник


Ответы (1)


В выражении (a==8) || (a--);, поскольку (a==8) уже истинно, следовательно, остальная часть условия ИЛИ не оценивается.

person Sandy    schedule 26.10.2018