Рубрики

C | Функции | Вопрос 11

Вывод следующей программы?

#include <stdio.h>

int main()

{

    int i = 5;

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

    return 0;

}

(А) 7 6 5
(Б) 5 6 7
(С) 7 7 7
(D) Зависит от компилятора

Ответ: (Д)
Объяснение: Когда параметры передаются в функцию, значение каждого параметра оценивается перед передачей в функцию.

Каков порядок оценки параметров — слева направо или справа налево?
Если порядок оценки слева направо, то выходной сигнал должен быть 5 6 7, а если порядок оценки справа налево, то выходной сигнал должен быть 7 6 5. К сожалению, не существует фиксированного порядка, определенного стандартом C. Компилятор может выбрать оценку слева направо.

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

C | Функции | Вопрос 11

0.00 (0%) 0 votes