Рубрики

ВОРОТА | GATE CS Mock 2018 | Набор 2 | Вопрос 53

Рассмотрим следующий C-код:

#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, если имя функции используется без скобок, ссылка на имя функции просто генерирует указатель на функцию, который затем отбрасывается. Таким образом, вышеуказанная программа будет компилироваться, но ничего не печатать.
Тест на этот вопрос

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

ВОРОТА | GATE CS Mock 2018 | Набор 2 | Вопрос 53

0.00 (0%) 0 votes