📖 Scenario: You are working with a simple program that stores a number and uses pointers to access and modify it. This is like having a remote control (pointer) to change the TV (variable) without touching it directly.
🎯 Goal: Learn how to use the & operator to get the address of a variable and the * operator to access or change the value at that address.
📋 What You'll Learn
Create an integer variable named number with the value 10.
Create a pointer variable named ptr that stores the address of number.
Use the pointer ptr to change the value of number to 20.
Print the value of number after modification.
💡 Why This Matters
🌍 Real World
Pointers let programs work with memory directly, which is important for efficient software like games, operating systems, and device drivers.
💼 Career
Understanding pointers is essential for C programming jobs, embedded systems 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 number = 10; to create the variable.
2
Create a pointer to the variable
Create a pointer variable called ptr that stores the address of number using the & operator.
C
Hint
Use int *ptr = &number; to create the pointer.
3
Change the value using the pointer
Use the pointer ptr and the dereference operator * to change the value of number to 20.
C
Hint
Use *ptr = 20; to change the value at the address.
4
Print the modified value
Print the value of number using printf to show it has changed to 20.
C
Hint
Use printf("%d\n", number); to print the value.
Practice
(1/5)
1. What does the & operator do in C?
easy
A. It gives the memory address of a variable.
B. It multiplies two numbers.
C. It dereferences a pointer to get the value.
D. It declares a pointer variable.
Solution
Step 1: Understand the & operator
The & operator is used to get the address of a variable in memory.
Step 2: Differentiate from other operators
It does not multiply, dereference, or declare pointers; those are different operations.
Final Answer:
It gives the memory address of a variable. -> Option A
Quick Check:
& means address-of [OK]
Hint: Remember & means 'address of' variable [OK]
Common Mistakes:
Confusing & with multiplication operator
Thinking & dereferences a pointer
Mixing & with pointer declaration
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. int *ptr;
Solution
Step 1: Recall pointer declaration syntax
In C, a pointer to an int is declared as int *ptr; where * indicates pointer type.
Step 2: Check other options for syntax errors
int &ptr; is invalid in C (it's C++ reference), int ptr*; and *int ptr; are incorrect syntax.
Final Answer:
int *ptr; -> Option D
Quick Check:
Pointer declaration uses * before variable name [OK]
Hint: Pointer declaration: type *name; [OK]
Common Mistakes:
Using & instead of * for pointers
Placing * after variable name incorrectly
Confusing C++ references with pointers
3. What is the output of this code?
int x = 10;
int *p = &x;
printf("%d", *p);
medium
A. 10
B. The memory address of x
C. Garbage value
D. Compilation error
Solution
Step 1: Understand pointer assignment
Pointer p stores the address of x using &x.
Step 2: Dereference pointer to get value
*p accesses the value at the address stored in p, which is 10.
Final Answer:
10 -> Option A
Quick Check:
*p gives value at address [OK]
Hint: *p gives value stored at pointer address [OK]
Common Mistakes:
Printing pointer variable instead of dereferenced value
Confusing & and * operators
Expecting address instead of value
4. Identify the error in this code snippet:
int x = 5;
int *p;
*p = x;
printf("%d", *p);
medium
A. Incorrect use of & operator.
B. Pointer p is not initialized before dereferencing.
C. Variable x is not declared.
D. Missing semicolon after declaration.
Solution
Step 1: Check pointer initialization
Pointer p is declared but not assigned an address before *p = x;.