Skip to content
Related Articles

Related Articles

C | Functions | Question 5
  • Difficulty Level : Basic
  • Last Updated : 13 Feb, 2013

Output?




#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) Compiler Error
(D) Runtime Error


Answer: (C)

Explanation: The only problem with program is fun is not declared/defined before it is assigned to ptr. The following program works fine and prints “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 ");
}


Quiz of this Question

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.
My Personal Notes arrow_drop_up
Recommended Articles
Page :