adplus-dvertising
frame-decoration

Question

What is the output of this C code?
#include <stdio.h>
    void f(int (*x)(int));
    int myfoo(int);
    int (*fooptr)(int);
    int ((*foo(int)))(int);
    int main()
    {
        fooptr = foo(0);
        fooptr(10);
    }
    int ((*foo(int i)))(int)
    {
        return myfoo;
    }
    int myfoo(int i)
    {
        printf("%d\n", i + 1);
    }

a.

10

b.

11

c.

Compile time error

d.

Undefined behaviour

Posted under C Programming

Answer: (b).11

Engage with the Community - Add Your Comment

Confused About the Answer? Ask for Details Here.

Know the Explanation? Add it Here.

Q. What is the output of this C code? #include <stdio.h> void f(int (*x)(int)); int myfoo(int); int (*fooptr)(int); int ((*foo(int)))(int); int...

Similar Questions

Discover Related MCQs

Q. One of the uses for function pointers in C is

Q. What does this declaration say?
int (*(*y)())[2];

Q. Read the following expression?
void (*ptr)(int);

Q. Which of the following expression is true for the following?

ptr is array with 3 elements of pointer to function returning pointer of int

Q. What do the following declaration denote?
int **ptr;

Q. What do the following declaration denote?
char *str[5];

Q. Comment on the following declaration?

int (*ptr)(); // i)
char *ptr[]; // ii)

Q. Is the below declaration legal?
int* ((*x)())[2];

Q. Let x be an array. Which of the following operations are illegal?

Q. What is the maximum number of dimensions an array in C may have?

Q. What does the following declaration mean?
int (*ptr)[10];

Q. Which of the following statements are correct about an array?

1. The array int num[26]; can store 26 elements.
2. The expression num[1] designates the very first element in the array.
3. It is necessary to initialize the array at the time of declaration.
4. The declaration num[SIZE] is allowed if SIZE is a macro.

Q. int a[5] = {1,2,3}

What is the value of a[4]?

Q. The function sprintf() works like printf(), but operates on ..........

Q. Choose the best answer.
Prior to using a pointer variable

Q. The address operator &, cannot act on

Q. The statement int **a;

Q. The operator > and < are meaningful when used with pointers, if

Q. The declaration
int (*p) [5];
means

Q. Comment on the following?
const int *ptr;