Difficulty: Easy
Correct Answer: A referenced does not need to be de-referenced to access a value.
Explanation:
Introduction / Context:
Unlike pointers, C++ references are used exactly like the underlying object. This question checks whether you know that references do not require the * operator to access the value they alias.
Given Data / Assumptions:
Concept / Approach:
A reference is an alias. Using the reference name accesses the referred object directly. You do not write *r to read or write; you simply use r. In contrast, a pointer p requires p to access the pointee. This syntactic difference is a primary reason references often lead to cleaner APIs.
Step-by-Step Solution:
1) Bind reference: 'int a = 10; int &r = a;'2) Access via reference: 'r = 20;' sets a = 20 without ''.3) Compare to pointer: 'int *p = &a; *p = 30;' requires explicit dereference.4) Conclude: no explicit dereference needed for references.
Verification / Alternative check:
Compile and run a simple program that assigns through a reference; observe the underlying object changes. Replace the reference with a pointer to see the syntactic difference.
Why Other Options Are Wrong:
Must dereference / double dereference: incorrect for references; they are not pointers-to-pointers.'Depends on the type': for references, access is uniform; the alias behaves like the underlying object.
Common Pitfalls:
Thinking that references support reseating or null semantics. They do not by default. If you need optional binding, use pointers or std::optional
Final Answer:
A referenced does not need to be de-referenced to access a value.
Discussion & Comments