Рубрики

Викторина С — 109 | вопрос 2

Выберите лучшее утверждение для следующей программы.

#include "stdio.h"

  

int foo(int a)

{

 printf("%d",a);

 return 0;

}

  

int main()

{

 foo;

 return 0;

}

(A) Это приведет к ошибке компиляции, потому что foo используется без скобок.
(B) Нет ошибки компиляции, и некоторое значение мусора будет передано в функцию foo. Это заставит foo выполняться с выводом «целого числа мусора».
(C) Нет ошибки компиляции, но функция foo не будет выполнена. Программа не будет ничего печатать.
(D) Нет ошибки компиляции, и ноль (то есть 0) будет передан в функцию foo. Это заставит foo выполняться с выводом 0.

Ответ: (с)
Объяснение: В C, если имя функции используется без скобок, ссылка на имя функции просто генерирует указатель на функцию, который затем отбрасывается. Таким образом, вышеуказанная программа будет компилироваться, но ничего не печатать.
Тест на этот вопрос

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

Викторина С — 109 | вопрос 2

0.00 (0%) 0 votes