Pointers let you store the address of a variable. This helps you work directly with the variable's location in memory.
When you want to change a variable's value inside a function.
When you need to share a large amount of data without copying it.
When working with dynamic memory to create variables during program run.
When you want to link data structures like lists or trees.
When you want to understand how memory works in your program.
Syntax
C++
type *pointerName = &variableName;
The * means this is a pointer.
The & gets the address of the variable.
Examples
Here, p stores the address of x.
C++
int x = 10;
int *p = &x;
ptr points to the character variable c.
C++
char c = 'A';
char *ptr = &c;
dp holds the address of the double variable d.
C++
double d = 3.14;
double *dp = &d;
Sample Program
This program shows how a pointer stores the address of a variable and how changing the value through the pointer changes the original variable.
C++
#include <iostream>
int main() {
int num = 42;
int *ptr = #
std::cout << "Value of num: " << num << "\n";
std::cout << "Address of num: " << &num << "\n";
std::cout << "Value stored in ptr (address of num): " << ptr << "\n";
std::cout << "Value pointed to by ptr: " << *ptr << "\n";
*ptr = 100; // Change value of num using pointer
std::cout << "New value of num after change through ptr: " << num << "\n";
return0;
}
OutputSuccess
Important Notes
Pointer stores the memory address, not the actual value.
Using *pointer lets you access or change the value at that address.
Always initialize pointers before using them to avoid errors.
Summary
Pointers hold the address of variables.
You can use pointers to read or change the variable's value.
Understanding pointers helps you manage memory and data efficiently.
Practice
(1/5)
1. What does a pointer variable in C++ store?
easy
A. The value of another variable
B. The memory address of another variable
C. The size of a variable
D. The type of a variable
Solution
Step 1: Understand what a pointer is
A pointer is a variable that stores the address of another variable, not the value itself.
Step 2: Differentiate pointer from normal variables
Normal variables store values directly, but pointers store where those values are located in memory.
Final Answer:
The memory address of another variable -> Option B
Quick Check:
Pointer = address storage [OK]
Hint: Pointers always hold addresses, not values [OK]
Common Mistakes:
Confusing pointer value with variable value
Thinking pointer stores variable type
Assuming pointer stores variable size
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. ptr int*;
Solution
Step 1: Recall pointer declaration syntax
In C++, to declare a pointer to an int, you write the type followed by an asterisk and the pointer name.
Step 2: Check each option
Only 'int *ptr;' matches the correct syntax. Others have misplaced asterisks or wrong order.
Final Answer:
int *ptr; -> Option C
Quick Check:
Pointer declaration = type *name [OK]
Hint: Pointer declaration: type *name; [OK]
Common Mistakes:
Placing * after variable name
Using * before type keyword
Mixing order of type and pointer symbol
3. What is the output of the following code?
int x = 10;
int *p = &x;
*p = 20;
std::cout << x << std::endl;
medium
A. 20
B. 10
C. Address of x
D. Compilation error
Solution
Step 1: Understand pointer assignment
Pointer p stores the address of x. Using *p = 20 changes the value at that address, so x becomes 20.
Step 2: Output the value of x
After changing *p, printing x outputs 20.
Final Answer:
20 -> Option A
Quick Check:
Pointer dereference changes variable value [OK]
Hint: Changing *p changes x's value [OK]
Common Mistakes:
Thinking *p = 20 changes pointer, not value
Expecting output to be address
Confusing pointer and variable values
4. Identify the error in the following code:
int x = 5;
int *p;
*p = x;
std::cout << *p << std::endl;
medium
A. Pointer p is not initialized before dereferencing
B. Variable x is not declared
C. Incorrect pointer declaration syntax
D. Missing semicolon after declaration
Solution
Step 1: Check pointer initialization
Pointer p is declared but not assigned an address before using *p = x; which causes undefined behavior.