All Exams Test series for 1 year @ ₹349 only
Question

Given

int arr[3][4][2]= {{{2,4},{7,8},{3,4},{5,6}},{{7,6},{3,4},{5,3},{2,3}},{{8.9},{7,2},{3,4},{5,1}}};

Which one of the following can be used to refer to element 1 in the above 3-d array?

This question was previously asked in
UGC NET 2022 Paper 1 Question Paper (22-Oct-2022) (Shift 2)
The correct answer is

*(*(*(arr+2)+3)+1)

In C, arr[i][j][k] is defined as *(*(*(arr+i)+j)+k): each subscript is pointer arithmetic on the array name followed by a dereference. Valid indices for int arr[3][4][2] are i = 0–2, j = 0–3, k = 0–1.

Step 1 — The initializer lists three 4×2 blocks. The third block (i = 2) is {{8.9},{7,2},{3,4},{5,1}}; its fourth row (j = 3) is {5,1}, and 1 is its second element (k = 1). So element 1 is arr[2][3][1].

Step 2 — Rewriting with pointers: arr+2 points to block 2, *(arr+2)+3 points to its row 3, *(*(arr+2)+3)+1 points to the element at k = 1, and the outer * reads it: *(*(*(arr+2)+3)+1) = arr[2][3][1] = 1.

Step 3 — arr[3][4][2] uses the declared sizes as indices and lies outside the array; arr[2][3][2] uses k = 2, past the last valid index 1 of the innermost dimension; *(arr+2)+*(arr+3)+*(arr+1) tries to add pointers to sub-arrays (and arr+3 is past the end), which is not an element access at all.

*(*(*(arr+2)+3)+1) option is correct.

Was this answer helpful?

Similar Questions

  1. A three dimensional array in ‘C’ is declared as int A[x][y][z]. Here, the address of an item at the location A[p][q][r] can be computed as follows (where w is the word length of an integer) :

  2. When we pass an array as an argument to a function, what actually gets passed ?

  3. Which of the following is true for computation time in insertion, deletion and finding maximum and minimum element in a sorted array ?

  4. Consider an array A[20, 10], assume 4 words per memory cell and the base address of array A is 100. What is the address of A[11, 5] ? Assume row major storage.

  5. When an array is passed as parameter to a function, which of the following statements is correct ?


Important Questions from Array

  1. Consider the following C program segment.

    #include <stdio.h>

    int main()
    {
      char s1[7] = "1234";
        char *p;

        p = s1 + 2;
        *p = '0';

        printf("%s", s1);

        return 0;
    }

    What will be printed by the program?
  2. #include <stdio.h>
    
    void foo(int *p, int x){
        *p = x;
    }
    
    int main(){
        int *z;
        int a = 20, b = 25;
        z = &a;
        foo(z, b);
        printf("%d", a);
        return 0;
    }
    
    The output of the given C program is __________. (Answer in integer)
  3. Consider an array $A$ of integers of size $n$. The indices of $A$ run from 1 to $n$. An algorithm is to be designed to check whether $A$ satisfies the condition given below.

    $\forall i,j \in \{1, \dots, n-1\}$ such that $i > j$, $(A[i + 1] - A[i]) > (A[j + 1] - A[j])$

    Which one of the following gives the worst case time complexity of the fastest algorithm that can be designed for the problem?
  4. What is the output the given C language code snippet? 

    #include<stdio.h>

     int main()

    {

     int x[] = {10,20,30}; 

    int *p = x; 

    p++; 

    printf("%d",*p); 

    return 0; 

    }

  5. Which of the following expression will delete the entire array pointed to by q?

Need Expert Advice?
Upcoming Exams
CTET
December 12, 2026
Test Series
UGC NET img
Teaching
UGC NET (Paper 2) 2026 Mock Test Series
796 Tests 2 Tests Free
4.4(39)
English
More Questions from UGC NET

Start Your Preparation with Prepp Mobile App

Download the app from Google Play & App Store
Download the app from Google Play & App Store
Prepp Mobile App