Difficulty: Easy
Correct Answer: 1200, 1200, 1200
Explanation:
Introduction / Context: This problem reinforces that an array name decays to the address of its first element in expressions, and that &arr gives the same numeric base address but has a different pointer type (pointer to the entire array).
Given Data / Assumptions:
Concept / Approach: In C, arr (in most expressions) decays to &arr[0]. Therefore arr and &arr[0] point to the same location numerically. The expression &arr has type pointer-to-array-of-5-ints, but it still points to the same starting address numerically.
Step-by-Step Solution:
arr -> address of first element = 1200 &arr[0] -> also 1200 &arr -> address of whole array = same numeric base 1200Verification / Alternative check: Dereferencing levels differ: *arr is int, while *&arr is the whole array. Yet the base numeric address stored is identical, so printing with %u shows 1200 for all three.
Why Other Options Are Wrong:
Common Pitfalls: Confusing pointer type with numeric address value. Type affects arithmetic step size, not the base numeric address printed here.
Final Answer: 1200, 1200, 1200
Discussion & Comments