Difficulty: Easy
Correct Answer: 11 11
Explanation:
Introduction / Context:
This problem ensures you understand references and post-increment when used inside a streaming expression. Because y
is a reference to x
, y++
modifies x
after yielding its current value.
Given Data / Assumptions:
x=10
.int &y = x;
so y
aliases x
.x++;
makes x=11
.
Concept / Approach:
Post-increment (y++
) yields the old value of y
(which equals the current x
) and then increments the object. Streaming prints values in order, using the produced value of each subexpression.
Step-by-Step Solution:
1) After x++
, x
becomes 11. 2) cout << x
prints 11 first. 3) y++
yields 11 (the current value), then increments the same underlying x
to 12. 4) The output tokens are thus 11
and 11
; the final state is x=12
.
Verification / Alternative check:
Replace y
with x
; x++
in the stream shows identical printed result but changes the final state after printing.
Why Other Options Are Wrong:
Options showing 12 as the first number ignore that increment happened before printing; options showing 12 as the second number forget that post-increment prints the old value.
Common Pitfalls:
Confusing pre- vs post-increment result value; forgetting that y
and x
are the same object.
Final Answer:
11 11
Discussion & Comments