📖 Scenario: Imagine you have a box with a toy inside. You want to share the toy with your friend without giving them the whole box. Instead, you give them a label that points to the toy inside the box. This way, both of you can play with the same toy without making copies.
🎯 Goal: Learn how to use references in C++ to share and modify the same data without copying it.
📋 What You'll Learn
Create an integer variable called number with the value 10
Create a reference to number called refNumber
Change the value of number using refNumber
Print the value of number to see the change
💡 Why This Matters
🌍 Real World
References are used in programs to efficiently share and update data without making copies, like sharing a single toy with friends using labels instead of giving each a new toy.
💼 Career
Understanding references is important for writing efficient C++ code, which is valuable in software development jobs involving performance-critical applications.
Progress0 / 4 steps
1
Create an integer variable
Create an integer variable called number and set it to 10.
C++
Hint
Use int number = 10; to create the variable.
2
Create a reference to the variable
Create a reference to number called refNumber.
C++
Hint
Use int& refNumber = number; to create a reference.
3
Modify the variable using the reference
Change the value of number to 20 using the reference refNumber.
C++
Hint
Assign 20 to refNumber to change number.
4
Print the updated value
Print the value of number using std::cout.
C++
Hint
Use std::cout << number << std::endl; to print the value.
Practice
(1/5)
1. Why do we need references in C++?
easy
A. To allow functions to modify the original variable without copying it
B. To create a new copy of a variable
C. To store multiple values in one variable
D. To make variables constant
Solution
Step 1: Understand what references do
References let you use another name for the same variable, so changes affect the original.
Step 2: Compare with copying
Copying creates a new variable, so changes do not affect the original.
Final Answer:
To allow functions to modify the original variable without copying it -> Option A
Quick Check:
References modify original data = A [OK]
Hint: References let functions change original variables directly [OK]
Common Mistakes:
Thinking references create copies
Confusing references with pointers
Believing references make variables constant
2. Which of the following is the correct syntax to declare a reference to an integer variable num?
easy
A. int *ref = num;
B. int ref = #
C. int &ref = num;
D. int ref & = num;
Solution
Step 1: Recall reference declaration syntax
References use & after the type, like int &ref.
Step 2: Check each option
int &ref = num; matches correct syntax. Others misuse pointers or symbols.
Final Answer:
int &ref = num; -> Option C
Quick Check:
Reference syntax = int &ref = var [OK]
Hint: References use & after type, not before variable name [OK]
Common Mistakes:
Using * instead of & for references
Placing & after variable name
Confusing pointers and references syntax
3. What will be the output of this code?
void addOne(int &x) {
x = x + 1;
}
int main() {
int a = 5;
addOne(a);
std::cout << a;
return 0;
}
medium
A. 5
B. 6
C. Compilation error
D. Undefined behavior
Solution
Step 1: Understand the function parameter
The function addOne takes x as a reference, so it modifies the original variable.
Step 2: Trace the code execution
Variable a is 5, addOne(a) adds 1, so a becomes 6. Then it prints 6.
Final Answer:
6 -> Option B
Quick Check:
Reference changes original = 6 [OK]
Hint: Reference parameters change original variables inside functions [OK]
Common Mistakes:
Thinking the value stays 5 after function call
Confusing references with copies
Expecting compilation error due to reference
4. Identify the error in this code snippet:
void swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int x = 10, y = 20;
swap(x, y);
std::cout << x << " " << y;
return 0;
}
medium
A. Function parameters should be pointers, not references
B. Missing & in function parameters
C. Cannot use references in function parameters
D. No error, code swaps values correctly
Solution
Step 1: Check function parameter types
The function uses references correctly to swap values.
Step 2: Verify code logic and output
The swap logic is correct and will print swapped values: 20 10.
Final Answer:
No error, code swaps values correctly -> Option D
Quick Check:
References swap values correctly = D [OK]
Hint: References can be used to swap variables without pointers [OK]
Common Mistakes:
Thinking pointers are required for swap
Believing references cannot be function parameters
Assuming code has syntax errors
5. You want to write a function that doubles the value of an integer passed to it. Which approach best uses references to achieve this efficiently?
hard
A. void doubleValue(int &x) { x = x * 2; }
B. void doubleValue(int x) { x = x * 2; }
C. void doubleValue(int *x) { *x = *x * 2; }
D. int doubleValue(int x) { return x * 2; }
Solution
Step 1: Understand the goal
The function should change the original integer's value directly.
Step 2: Evaluate each option
void doubleValue(int x) { x = x * 2; } changes only a copy, no effect outside. void doubleValue(int &x) { x = x * 2; } uses reference to modify original. void doubleValue(int *x) { *x = *x * 2; } uses pointer, works but less simple. int doubleValue(int x) { return x * 2; } returns new value, caller must assign.
Final Answer:
void doubleValue(int &x) { x = x * 2; } -> Option A
Quick Check:
Use references to modify original efficiently = A [OK]
Hint: Use references to change original variables without pointers [OK]
Common Mistakes:
Using pass-by-value and expecting original to change
Confusing pointers with references
Forgetting to assign returned value when not using references
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.