Рубрики

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

Выход?

#include <stdio.h>

  

int main()

{

    int (*ptr)(int ) = fun;

    (*ptr)(3);

    return 0;

}

  

int fun(int n)

{

  for(;n > 0; n--)

    printf("GeeksQuiz ");

  return 0;

}

(A) GeeksQuiz GeeksQuiz GeeksQuiz
(B) GeeksQuiz GeeksQuiz
(C) Ошибка компилятора
(D) Ошибка выполнения

Ответ: (с)
Объяснение: Единственная проблема с программой заключается в том, что fun не объявлена / не определена до того, как назначена в ptr. Следующая программа работает нормально и печатает «GeeksQuiz GeeksQuiz GeeksQuiz»

int fun(int n);

int main()
{
    // ptr is a pointer to function fun()
    int (*ptr)(int ) = fun;

    // fun() called using pointer 
    (*ptr)(3);
    return 0;
}

int fun(int n)
{
  for(;n > 0; n--)
    printf("GeeksQuiz ");
}

Тест на этот вопрос

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

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

0.00 (0%) 0 votes