📖 Scenario: Imagine you are working with a simple program that needs to store and access the memory address of an integer variable. This is common in many real-world applications where you want to work directly with memory locations.
🎯 Goal: You will create a pointer to an integer variable, assign the address of the variable to the pointer, and then print the value using the pointer.
📋 What You'll Learn
Create an integer variable named num with the value 42.
Declare a pointer to an integer named ptr.
Assign the address of num to ptr.
Print the value of num using the pointer ptr.
💡 Why This Matters
🌍 Real World
Pointers are used in many programs to efficiently manage memory and work with data structures like linked lists, trees, and arrays.
💼 Career
Understanding pointers is essential for systems programming, embedded development, and performance-critical applications.
Progress0 / 4 steps
1
Create an integer variable
Create an integer variable called num and set it to 42.
C++
Hint
Use int to declare an integer variable and assign the value 42.
2
Declare a pointer to the integer
Declare a pointer to an integer called ptr.
C++
Hint
Use int* to declare a pointer to an integer.
3
Assign the address of the variable to the pointer
Assign the address of num to the pointer ptr using the address-of operator &.
C++
Hint
Use ptr = # to assign the address of num to ptr.
4
Print the value using the pointer
Print the value of num by dereferencing the pointer ptr using *ptr and std::cout.
C++
Hint
Use std::cout << *ptr << std::endl; to print the value pointed to by ptr.
Practice
(1/5)
1. Which of the following correctly declares a pointer to an integer in C++?
easy
A. ptr int*;
B. int ptr*;
C. *int ptr;
D. int *ptr;
Solution
Step 1: Understand pointer declaration syntax
In C++, a pointer to a type is declared by writing the type followed by an asterisk (*) and then the pointer name.
Step 2: Check each option
int *ptr; uses int *ptr; which is the correct syntax. Other options place the asterisk incorrectly.
Final Answer:
int *ptr; -> Option D
Quick Check:
Pointer declaration = type *name [OK]
Hint: Remember: type *name; declares a pointer [OK]
Common Mistakes:
Placing * after the variable name
Using * before the type keyword
Omitting the * entirely
2. Which of the following is the correct syntax to declare a pointer to a double variable named p?
easy
A. double *p;
B. p double*;
C. *double p;
D. double p*;
Solution
Step 1: Recall pointer declaration rules
The pointer declaration syntax is type *pointerName;. The asterisk (*) must come immediately before the pointer name.
Step 2: Evaluate options
double *p; correctly declares double *p;. Other options have misplaced asterisks or wrong order.
Final Answer:
double *p; -> Option A
Quick Check:
Pointer to double = double *p; [OK]
Hint: Put * right before pointer name, after type [OK]
Common Mistakes:
Writing * after the variable name
Placing * before the type keyword
Swapping variable and type order
3. What is the output of the following code?
int x = 10;
int *p = &x;
std::cout << *p << std::endl;
medium
A. Garbage value
B. Address of x
C. 10
D. Compilation error
Solution
Step 1: Understand pointer initialization
The pointer p is assigned the address of x using &x. So p points to x.
Step 2: Dereference pointer to get value
The expression *p accesses the value stored at the address p points to, which is 10.
Final Answer:
10 -> Option C
Quick Check:
*p gives value at address = 10 [OK]
Hint: Dereference pointer *p to get variable value [OK]
Common Mistakes:
Printing pointer variable instead of dereferenced value
Confusing & (address) with * (dereference)
Expecting address output instead of value
4. Identify the error in the following code snippet:
int a = 5;
int *ptr;
*ptr = a;
medium
A. Pointer ptr is not initialized before dereferencing
B. Variable a is not declared
C. Incorrect pointer declaration syntax
D. Missing semicolon after declaration
Solution
Step 1: Check pointer initialization
The pointer ptr is declared but not assigned any address before dereferencing.
Dereferencing *ptr without initialization leads to undefined behavior or runtime error.
Final Answer:
Pointer ptr is not initialized before dereferencing -> Option A
Quick Check:
Uninitialized pointer dereference = error [OK]
Hint: Always initialize pointer before using *ptr [OK]
Common Mistakes:
Dereferencing pointer before assigning address
Assuming declaration initializes pointer
Ignoring runtime errors from uninitialized pointers
5. Given the code below, which pointer declaration correctly allows p to point to a constant integer value?
const int val = 100;
// Which declaration is correct?
hard
A. int *p = &val;
B. const int *p = &val;
C. int *const p = &val;
D. int *p const = &val;
Solution
Step 1: Understand pointer to const int
To point to a constant integer, the pointer must be declared as pointing to a const int to prevent modification.
Step 2: Analyze options
int *p = &val; cannot assign const int* to int* (discards qualifiers). const int *p = &val; correctly declares pointer to const int. int *const p = &val; declares const pointer to int (type mismatch). int *p const = &val; invalid syntax.
Final Answer:
const int *p = &val; -> Option B
Quick Check:
Pointer to const int = const int *p [OK]
Hint: Use const int *p to point to constant int [OK]
Common Mistakes:
Using int *p to point to const int
Confusing const pointer and pointer to const
Misplacing const keyword
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.