📖 Scenario: Imagine you have a box with a toy inside. Sometimes, instead of carrying the whole box around, you just carry a note that tells you where the box is. This note is like a pointer in programming.
🎯 Goal: You will create a simple C++ program to understand why pointers are useful by showing how to use a pointer to access and change a variable's value.
📋 What You'll Learn
Create an integer variable with a specific value
Create a pointer variable that stores the address of the integer variable
Use the pointer to change the value of the integer variable
Print the value of the integer variable before and after changing it through the pointer
💡 Why This Matters
🌍 Real World
Pointers are used in real-world programs to efficiently manage memory, pass large data to functions without copying, and work with dynamic data structures like linked lists.
💼 Career
Understanding pointers is essential for jobs in systems programming, embedded systems, game development, and 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 to declare an integer variable and assign the value 10.
2
Create a pointer to the integer variable
Create a pointer variable called ptr that stores the address of number.
C++
Hint
Use int* ptr to declare a pointer to an integer and &number to get the address of number.
3
Change the value using the pointer
Use the pointer ptr to change the value of number to 20.
C++
Hint
Use *ptr to access the value pointed to by ptr and assign 20 to it.
4
Print the value before and after changing it
Print the value of number before and after changing it through the pointer using std::cout.
C++
Hint
Use std::cout to print text and variable values. Remember to include <iostream> and use std::endl for new lines.
Practice
(1/5)
1. Why do we need pointers in C++ programming?
easy
A. To directly access and modify memory locations
B. To write comments in the code
C. To create loops easily
D. To define new data types
Solution
Step 1: Understand what pointers represent
Pointers store the address of a variable in memory, not the variable's value itself.
Step 2: Recognize the benefit of direct memory access
This allows programs to directly access and modify data stored in memory, which is not possible with normal variables alone.
Final Answer:
To directly access and modify memory locations -> Option A
Quick Check:
Pointers = direct memory access [OK]
Hint: Pointers hold addresses to access data directly [OK]
Common Mistakes:
Thinking pointers are used for comments
Confusing pointers with loops
Believing pointers define new data types
2. Which of the following is the correct way to declare a pointer to an integer in C++?
easy
A. int *ptr;
B. int ptr*;
C. *int ptr;
D. pointer int ptr;
Solution
Step 1: Recall pointer declaration syntax
In C++, a pointer to a type is declared by placing an asterisk (*) before the pointer name after the type.
Step 2: Match the correct syntax
Among the options, only 'int *ptr;' correctly declares a pointer to an integer.
Final Answer:
int *ptr; -> Option A
Quick Check:
Pointer declaration = type *name [OK]
Hint: Pointer syntax: type *pointerName; [OK]
Common Mistakes:
Placing * after the pointer name
Using invalid keywords like 'pointer'
Misplacing the asterisk before the type
3. What will be the output of the following C++ code?
int x = 10; int *p = &x; *p = 20; std::cout << x;
medium
A. Compilation error
B. 10
C. Address of x
D. 20
Solution
Step 1: Understand pointer assignment and dereferencing
Pointer p stores the address of x. Using *p = 20; changes the value at that address, which is x.
Step 2: Determine the value of x after modification
Since *p = 20 modifies x, printing x outputs 20.
Final Answer:
20 -> Option D
Quick Check:
*p changes x = 20 [OK]
Hint: Dereference pointer to change original variable [OK]
Common Mistakes:
Thinking *p prints address instead of value
Assuming x remains unchanged
Confusing pointer declaration with value assignment
4. Identify the error in this code snippet:
int a = 5; int *p; *p = a; std::cout << *p;
medium
A. Variable a is not declared
B. Pointer p is not initialized before dereferencing
C. Incorrect pointer syntax
D. Missing semicolon after declaration
Solution
Step 1: Check pointer initialization
Pointer p is declared but not assigned any address before using *p = a;, which causes undefined behavior.
Step 2: Understand consequences of uninitialized pointer
Dereferencing an uninitialized pointer leads to runtime errors or crashes.
Final Answer:
Pointer p is not initialized before dereferencing -> Option B
Quick Check:
Initialize pointer before use [OK]
Hint: Always assign pointer before dereferencing [OK]
Common Mistakes:
Ignoring pointer initialization
Assuming variable a is missing
Thinking syntax is incorrect
5. You want a function to modify an integer variable defined in main(). Which is the best way to achieve this using pointers?
hard
A. Pass the variable's value to the function
B. Use a global variable instead
C. Pass the variable's pointer to the function and modify via dereferencing
D. Return a new value from the function and assign it in main()
Solution
Step 1: Understand function parameter passing
Passing a variable's value copies it, so changes inside the function don't affect the original.
Step 2: Use pointers to modify original variable
Passing the variable's pointer allows the function to access and change the original variable by dereferencing the pointer.
Final Answer:
Pass the variable's pointer to the function and modify via dereferencing -> Option C
Quick Check:
Pointer parameter modifies original variable [OK]
Hint: Pass pointer to function to change original variable [OK]
Common Mistakes:
Passing value only modifies copy
Using global variables unnecessarily
Relying on return value instead of pointers
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.