Find Output Of Program

Question 11 :

What will be the output of the program if the array begins 1200 in memory?

#include < stdio.h >
int main()
{
    int arr[]={2, 3, 4, 1, 6};
    printf("%u, %u, %u\n", arr, &arr[0], &arr);
    return 0;
}


A). 1200, 1202, 1204
B). 1200, 1200, 1200
C). 1200, 1204, 1208
D). 1200, 1202, 1200
Answer : Option B

Explanation :

Step 1: int arr[]={2, 3, 4, 1, 6}; The variable arr is declared as an integer array and initialized.
Step 2: printf("%u, %u, %u\n", arr, &arr[0], &arr); Here,
The base address of the array is 1200.
=> arr, &arr is pointing to the base address of the array arr.
=> &arr[0] is pointing to the address of the first element array arr. (ie. base address)

Hence the output of the program is 1200, 1200, 1200