C | Advanced Pointer | Question 2

Assume sizeof an integer and a pointer is 4 byte. Output?

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <stdio.h>
  
#define R 10
#define C 20
  
int main()
{
   int (*p)[R][C];
   printf("%d"sizeof(*p));
   getchar();
   return 0;
}

chevron_right


(A) 200
(B) 4
(C) 800
(D) 80


Answer: (C)

Explanation: Output is 10*20*sizeof(int) which is “800″ for compilers with integer size as 4 bytes.

When a pointer is de-referenced using *, it yields type of the object being pointed. In the present case, it is an array of array of integers. So, it prints R*C*sizeof(int).


Quiz of this Question



My Personal Notes arrow_drop_up


Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.