Рубрики

C | Операторы | Вопрос 5

#include <stdio.h>

int main()

{

    int i = 3;

    printf("%d", (++i)++);

    return 0;

}

Каков вывод вышеуказанной программы?
(А) 3
(Б) 4
(С) 5
(D) Ошибка времени компиляции

Ответ: (Д)
Объяснение: В Си префиксным и постфиксным операторам требуется l-значение для выполнения операции и возврата r-значения. Выражение (++ i) ++ при выполнении увеличивает значение переменной i (i является l-значением) и возвращает r-значение. Компилятор генерирует ошибку (требуется l-значение), когда он пытается постинкременировать значение r-значения.

Рекомендуемые посты:

C | Операторы | Вопрос 5

0.00 (0%) 0 votes