Difficulty: Medium
Correct Answer: 4, 4, 4
Explanation:
Introduction / Context:
This problem explores how dereferencing exposes the next pointer level's qualifier, which then determines sizeof for that expression in Turbo C. It is about careful parsing, not arithmetic.
Given Data / Assumptions:
Concept / Approach:
Each dereference moves one level inward: ptr1 reaches a huge; ptr2 is itself huge; ptr3 is huge. sizeof of any huge under Turbo C is 4.
Step-by-Step Solution:
1) **ptr1 ⇒ huge * ⇒ sizeof(**ptr1) = 4.2) ptr2 ⇒ huge * ⇒ sizeof(ptr2) = 4.3) *ptr3 ⇒ huge * ⇒ sizeof(*ptr3) = 4.4) Output: 4, 4, 4.
Verification / Alternative check:
Break the types with typedefs for readability and print sizeof each alias.
Why Other Options Are Wrong:
Option B: Treats all as near; Option C/D: Inject impossible 8-byte sizes or wrong bindings.
Common Pitfalls:
Forgetting that dereferencing does not necessarily reach the base char; at each step you may still be at a pointer type with its own qualifier.
Final Answer:
4, 4, 4
Discussion & Comments