in Programming retagged ago by
14,968 views
24 votes
24 votes

Consider the following C program.

#include <stdio.h>
int main ()  {
    int  a[4] [5] = {{1, 2, 3, 4, 5},
                    {6, 7,8, 9, 10},
                    {11, 12, 13, 14, 15},
                    {16, 17,18, 19, 20}};
    printf(“%d\n”, *(*(a+**a+2)+3));
    return(0);
}

The output of the program is _______.

in Programming retagged ago by
by
15.0k views

2 Answers

42 votes
42 votes
Best answer

'$a$' is a two dimensional array.

  • $a =$ address of $0^{th}$ index of 2-D array which means address of 1-D array
  • $^*a =$  address of $0^{th}$ index element of $0^{th}$ index 1-D array
  • $^{**}a =$ value at $0^{th}$ index element of $0^{th}$ index 1-D array
    • $\implies ^{**}a = 1$
    • $\implies ^{**}a+2 = 1+2 = 3$
  • $a+3 =$ address of $3^{rd}$ index 1-D array
  • $^*(a+3) = $ address of $0^{th}$ index element of $3^{rd}$ index 1-D array
  • $^*(a+3)+3 =$ address of $3^{rd}$ index element of $3^{rd}$ index 1-D array
  • $^*(^*(a+3)+3) =$ value at $3^{rd}$ index element of $3^{rd}$ index 1-D array $= 19$

Correct Answer: $19.$

selected by

3 Comments

0
0
Amazing!
0
0
Easy conversion for these qs: $*(a+i) = a[i]$

Thus, $^*(a+3) = a[3]$

and $^*(^*(a+3)+3) = *(a[3]+3) = a[3][3] = 19$
1
1
5 votes
5 votes

Answer : 19

a[4] [5] = {{1, 2, 3, 4, 5},

                   {6, 7,8, 9, 10},

                 {11, 12, 13, 14, 15},

                 {16, 17,18, 19, 20}};

Lets solve step-by step :   

step1-   * ( * ( a + ( * ( * a ) ) + 2 ) + 3 )           // note :     ( *(* a)) = 1

step2-    * ( * ( ( (a + 1 )+ 2) ) + 3 )                 

step3-    * ( * ( a + 3) +3)                                // note :    *(a+3)   is address of the memory location where                                                                                                                                           16 is stored or address of 4th row

step4-    * ( * ( a + 3) +3)                                // note. :    *(a+3)+3 now its the address of 4th row and 4th column index.                                                                                                                (a+0) is 1st row so a+3 is 4th row or address of 19

step5-    * ( * ( a + 3) +3)  means value stored at 4th row and 4th column .

so , 19

Answer:

Related questions