Skip to content
GATEiit

GATE CSE 2020 Q32: Output of pointer arithmetic on a 2D array: *(*(a+**a+2)+3)

Question

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 _______.

Try it: numerical answer: type the value

Numerical answer. No negative marking.
Show answer and explanation

Answer: 19 (official GATE 2020 final answer key)

Concept used: For a 2D array, a+ka + k points to row kk and ∗(a+k)+j*(a + k) + j points to element a[k][j]a[k][j].

First step: ∗∗a=a[0][0]=1**a = a[0][0] = 1, so the expression is ∗(∗(a+3)+3)=a[3][3]*(*(a + 3) + 3) = a[3][3].

Full step-by-step solution

Detailed working, common mistakes and linked mock tests will be available with a free GATEiit account. Log-in is coming soon.

Share this question

WhatsAppDownload image

Source: official GATE 2020 CS question paper and final answer key, organised by IIT Delhi. Question paper · Answer key