📖 Scenario: Imagine you are organizing a small event and need to keep track of the number of guests in different rooms. You will learn how variable scope works in C++ by using variables inside and outside blocks.
🎯 Goal: You will create variables with different scopes and see how their values change inside and outside blocks.
📋 What You'll Learn
Create a global variable
Create a local variable inside a block
Use a nested block with a variable of the same name
Print variable values to see which one is used
💡 Why This Matters
🌍 Real World
Understanding variable scope helps avoid bugs when multiple parts of a program use the same names.
💼 Career
Knowing scope is essential for writing clear, maintainable code in any programming job.
Progress0 / 4 steps
1
Create a global variable
Create a global integer variable called guests and set it to 10.
C++
Hint
Global variables are declared outside any function.
2
Create a local variable inside main
Inside the main function, create a local integer variable called guests and set it to 5.
C++
Hint
Local variables are declared inside functions and hide global variables with the same name.
3
Create a nested block with a new variable
Inside the main function, add a nested block using curly braces { }. Inside this block, create another integer variable called guests and set it to 2.
C++
Hint
Variables declared in inner blocks hide variables with the same name in outer blocks.
4
Print variable values to see scope in action
Add std::cout statements to print the value of guests inside the nested block, inside main but outside the nested block, and outside main (use the global variable). Use std::cout and std::endl to print each value on its own line.
C++
Hint
Use ::guests to access the global variable inside main.
Practice
(1/5)
1. What is the scope of a variable declared inside a function in C++?
easy
A. It can only be used inside that function.
B. It can be used anywhere in the program.
C. It can be used only in the main function.
D. It can be used in all functions after declaration.
Solution
Step 1: Understand local variable scope
A variable declared inside a function is local to that function only.
Step 2: Check usage outside the function
Such variables cannot be accessed outside their function block.
Final Answer:
It can only be used inside that function. -> Option A
Quick Check:
Local variable scope = inside function only [OK]
Hint: Local variables live only inside their function block [OK]
Common Mistakes:
Thinking local variables are accessible globally
Confusing local and global variable scopes
2. Which of the following is the correct way to declare a global variable in C++?
easy
A. int x; inside main() function
B. int x; outside all functions
C. int x; inside a block { }
D. int x; inside a for loop
Solution
Step 1: Identify global variable declaration
Global variables must be declared outside all functions and blocks.
Step 2: Check each option
Only int x; outside all functions declares the variable outside all functions, making it global.
Final Answer:
int x; outside all functions -> Option B
Quick Check:
Global variable declared outside functions [OK]
Hint: Global variables declared outside all functions [OK]
Common Mistakes:
Declaring global variables inside functions
Declaring variables inside loops thinking they are global
3. What will be the output of the following C++ code?
int x = 5;
void func() {
int x = 10;
std::cout << x << std::endl;
}
int main() {
func();
std::cout << x << std::endl;
return 0;
}
medium
A. 10\n5
B. 10\n10
C. 5\n5
D. 5\n10
Solution
Step 1: Analyze variable shadowing in func()
Inside func(), local x = 10 shadows global x = 5, so prints 10.
Step 2: Analyze main() output
After func(), main() prints global x = 5.
Final Answer:
10\n5 -> Option A
Quick Check:
Local shadows global, prints 10 then 5 [OK]
Hint: Local variable shadows global inside function [OK]
Common Mistakes:
Assuming global x changes inside func()
Confusing which x is printed in main()
4. Identify the error in the following C++ code:
int main() {
std::cout << x << std::endl;
int x = 5;
return 0;
}
medium
A. Error: x declared twice
B. No error, prints 5
C. Error: Missing semicolon
D. Error: x used before declaration
Solution
Step 1: Check variable usage before declaration
The code tries to print x before it is declared.
Step 2: Understand C++ variable initialization rules
Variables must be declared before use; using x before declaration causes error.
Final Answer:
Error: x used before declaration -> Option D
Quick Check:
Use after declaration required [OK]
Hint: Declare variables before using them [OK]
Common Mistakes:
Assuming declaration order does not matter
Ignoring compiler errors about undeclared variables
5. Consider the following code snippet:
int x = 1;
void update() {
x = 5;
int x = 10;
std::cout << x << std::endl;
}
int main() {
update();
std::cout << x << std::endl;
return 0;
}
What will be the output and why?
hard
A. 10\n5 because local x shadows global, but global x updated before local declaration
B. 10\n1 because global x not updated due to local shadowing
C. Compilation error due to variable redeclaration
D. 5\n10 because global x updated first, then local x printed
Solution
Step 1: Analyze variable declaration order
The line x = 5; appears before the local variable x is declared in the same function.
Step 2: Understand C++ rules on variable usage
Using a variable before its local declaration in the same scope is illegal and causes a compilation error.
Step 3: Reason about the error
Because local x is declared after x = 5;, the assignment tries to assign to local x before its declaration, which is invalid.
Final Answer:
Compilation error due to variable redeclaration -> Option C
Quick Check:
Using variable before declaration in same scope causes error [OK]
Hint: Cannot use variable before local declaration in same scope [OK]
Common Mistakes:
Thinking there's a compilation error on x=5
Believing local shadowing prevents global update before declaration
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.