Bird
Raised Fist0
C++programming~10 mins

Reference declaration in C++ - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Reference declaration
Declare variable
↓
Declare reference with &
↓
Reference points to variable
↓
Use reference as alias
↓
Changes via reference affect original variable
This flow shows how a reference is declared to alias an existing variable and how changes through the reference affect the original variable.
Execution Sample
C++
int x = 10;
int& ref = x;
ref = 20;
std::cout << x;
This code declares an integer x, a reference ref to x, changes x via ref, and prints x.
Execution Table
StepActionVariable xReference refOutput
1Declare x = 1010--
2Declare ref as reference to x10alias to x-
3Assign ref = 20 (changes x)20alias to x-
4Print x20alias to x20
💡 Program ends after printing x which is now 20 due to reference assignment
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
xundefined10102020
refundefinedundefinedalias to xalias to xalias to x
Key Moments - 2 Insights
Why does changing 'ref' also change 'x'?
Because 'ref' is a reference (alias) to 'x', any assignment to 'ref' actually changes 'x' as shown in step 3 of the execution_table.
Can a reference be changed to refer to another variable after declaration?
No, once a reference is set to a variable (step 2), it cannot be changed to refer to another variable. It always aliases the original variable.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 3, what is the value of x?
A10
B20
Cundefined
Dref
💡 Hint
Check the 'Variable x' column at step 3 in the execution_table.
At which step does 'ref' become an alias to 'x'?
AStep 2
BStep 1
CStep 3
DStep 4
💡 Hint
Look at the 'Reference ref' column in the execution_table to see when it becomes 'alias to x'.
If we assign 'ref = 30;' after step 3, what will be the value of x?
Aundefined
B20
C30
Dref
💡 Hint
Since 'ref' aliases 'x', assigning to 'ref' changes 'x' as shown in the variable_tracker.
Concept Snapshot
Reference declaration syntax: int& ref = variable;
A reference is an alias to an existing variable.
Changing the reference changes the original variable.
References must be initialized when declared.
References cannot be reseated to another variable.
Full Transcript
This example shows how to declare a reference in C++. First, we declare an integer variable x with value 10. Then, we declare a reference ref to x using int& ref = x;. The reference ref acts as another name for x. When we assign 20 to ref, it changes the value of x to 20. Finally, printing x outputs 20. The key idea is that references alias variables and any changes through the reference affect the original variable. References must be initialized when declared and cannot be changed to alias another variable later.

Practice

(1/5)
1. What is a reference in C++?
easy
A. A pointer to a variable
B. A new variable with its own memory
C. An alias for another variable
D. A constant value

Solution

  1. Step 1: Understand the definition of a reference

    A reference acts as another name for an existing variable, not a separate variable.
  2. Step 2: Compare with other options

    Unlike pointers or constants, references directly alias the original variable.
  3. Final Answer:

    An alias for another variable -> Option C
  4. Quick Check:

    Reference = Alias [OK]
Hint: Remember: reference is just another name for a variable [OK]
Common Mistakes:
  • Confusing references with pointers
  • Thinking references create new memory
  • Believing references can be reassigned
2. Which of the following is the correct syntax to declare a reference to an int variable x?
easy
A. int &ref = x;
B. int ref& = x;
C. int &ref(x);
D. int ref = &x;

Solution

  1. Step 1: Recall correct reference syntax

    References are declared with the & symbol after the type: int &ref = x;.
  2. Step 2: Check other options for syntax errors

    int ref& = x; places & incorrectly, C uses parentheses which is invalid here, D uses pointer syntax.
  3. Final Answer:

    int &ref = x; -> Option A
  4. Quick Check:

    Reference syntax = type &name = variable [OK]
Hint: Put & right after type, before variable name [OK]
Common Mistakes:
  • Placing & after variable name
  • Using parentheses instead of = for initialization
  • Confusing references with pointers (& usage)
3. What is the output of this code?
int a = 5;
int &ref = a;
ref = 10;
std::cout << a << std::endl;
medium
A. 5
B. Undefined behavior
C. Compilation error
D. 10

Solution

  1. Step 1: Understand reference assignment

    Reference ref aliases a, so assigning to ref changes a.
  2. Step 2: Trace the output

    After ref = 10;, a becomes 10, so printing a outputs 10.
  3. Final Answer:

    10 -> Option D
  4. Quick Check:

    Reference assignment changes original variable [OK]
Hint: Changing reference changes original variable [OK]
Common Mistakes:
  • Thinking ref is separate variable
  • Expecting original variable unchanged
  • Confusing reference with pointer syntax
4. Identify the error in this code:
int x = 5;
int &ref;
ref = x;
medium
A. Cannot assign int to reference
B. Reference must be initialized when declared
C. Variable x is not declared
D. No error, code is correct

Solution

  1. Step 1: Check reference declaration rules

    References must be initialized at declaration; int &ref; without initialization is invalid.
  2. Step 2: Analyze the code

    Here, ref is declared without initialization, causing a compilation error.
  3. Final Answer:

    Reference must be initialized when declared -> Option B
  4. Quick Check:

    References need initialization [OK]
Hint: Always initialize references when declaring [OK]
Common Mistakes:
  • Declaring references without initialization
  • Confusing assignment after declaration with initialization
  • Ignoring compiler errors on references
5. Given the code below, what will be the output?
int a = 3;
int b = 4;
int &ref = a;
ref = b;
std::cout << a << ", " << b << std::endl;
What does this demonstrate about references?
hard
A. Reference assignment changes the original variable's value
B. Reference creates a copy of the variable
C. Reference can be reassigned to another variable
D. Reference points to the address of another variable

Solution

  1. Step 1: Understand reference initialization

    ref is a reference to a, fixed at initialization.
  2. Step 2: Analyze ref = b;

    This assigns the value of b to a through ref, not reassigning the reference.
  3. Step 3: Determine output

    After assignment, a becomes 4, b remains 4, so output is 4, 4.
  4. Final Answer:

    Reference assignment changes the original variable's value -> Option A
  5. Quick Check:

    Reference fixed; assignment changes value [OK]
Hint: Reference fixed at init; assignment changes value, not reference [OK]
Common Mistakes:
  • Thinking reference can be reassigned to another variable
  • Confusing reference with pointer behavior
  • Assuming reference copies value
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard