📖 Scenario: You are learning how to use pointers in C. Pointers are variables that store memory addresses. This helps you work directly with memory locations.
🎯 Goal: Build a simple C program that declares an integer variable and a pointer to that integer. Then print the value of the integer using the pointer.
📋 What You'll Learn
Declare an integer variable with a specific value
Declare a pointer variable that points to the integer variable
Use the pointer to access and print the integer value
💡 Why This Matters
🌍 Real World
Pointers are used in C programming to work directly with memory. This is important for system programming, embedded devices, and performance-critical applications.
💼 Career
Understanding pointers is essential for jobs in systems programming, embedded software development, and any role that requires low-level memory management.
Progress0 / 4 steps
1
Declare an integer variable
Declare an integer variable called num and set it to 42.
C
Hint
Use int num = 42; to declare the integer variable.
2
Declare a pointer to the integer
Declare a pointer variable called ptr that points to the integer variable num.
C
Hint
Use int *ptr = # to declare a pointer to num.
3
Access the integer value using the pointer
Use the pointer ptr to access the value of num and store it in an integer variable called value.
C
Hint
Use int value = *ptr; to get the value pointed by ptr.
4
Print the value using the pointer
Print the value of num by using the pointer ptr with printf. Use printf("%d\n", *ptr);.
C
Hint
Use printf("%d\n", *ptr); to print the value pointed by ptr.
Practice
(1/5)
1. What does the following declaration mean in C? int *ptr;
easy
A. ptr is a pointer to a character variable
B. ptr is a pointer to an integer variable
C. ptr is an integer variable
D. ptr is a function returning an integer
Solution
Step 1: Understand the * symbol in declaration
The * before ptr means ptr is a pointer variable, not a normal integer.
Step 2: Check the type before *
The type before * is int, so ptr points to an integer variable.
Final Answer:
ptr is a pointer to an integer variable -> Option B
Quick Check:
int *ptr means pointer to int [OK]
Hint: Look for * before variable name to identify pointer [OK]
Common Mistakes:
Thinking * means multiplication here
Confusing pointer with normal variable
Ignoring the type before *
2. Which of the following is the correct way to declare a pointer to a float variable in C?
easy
A. ptr float*;
B. float ptr*;
C. *float ptr;
D. float *ptr;
Solution
Step 1: Recall pointer declaration syntax
Pointer declaration syntax is: type *name; so the * goes between type and variable name.
Step 2: Check each option
float *ptr; matches correct syntax: float *ptr; others have wrong order or missing parts.
Final Answer:
float *ptr; -> Option D
Quick Check:
Pointer syntax = type *name; [OK]
Hint: Always put * between type and variable name [OK]
Common Mistakes:
Placing * after variable name
Putting * before type
Missing * entirely
3. What is the output of this C code?
int x = 10;
int *p = &x;
printf("%d", *p);
medium
A. 10
B. Compilation error
C. Garbage value
D. Address of x
Solution
Step 1: Understand pointer initialization
p is assigned the address of x using &x, so p points to x.
Step 2: Dereference pointer to get value
*p means value at address p, which is x's value 10.
Final Answer:
10 -> Option A
Quick Check:
*p gives value at pointer address [OK]
Hint: Use * to get value from pointer address [OK]
Common Mistakes:
Printing pointer p instead of *p
Confusing address and value
Forgetting & to get address
4. Identify the error in this pointer declaration:
int *p;
p = 5;
medium
A. Error: assigning integer directly to pointer
B. Correct: p points to integer 5
C. Error: missing * in assignment
D. Error: pointer must be initialized with & operator
Solution
Step 1: Check pointer assignment rules
A pointer must hold a memory address, not a direct integer value.
Step 2: Analyze given assignment
Assigning 5 directly to pointer p is invalid; it should be an address like &variable.
Final Answer:
Error: assigning integer directly to pointer -> Option A
Quick Check:
Pointer = address, not direct value [OK]
Hint: Pointers store addresses, never assign raw values directly [OK]
Common Mistakes:
Assigning integer instead of address
Forgetting & operator for address
Confusing pointer and normal variable
5. Given the code below, which pointer declaration correctly allows modifying the value of num through the pointer?
int num = 20;
// Which declaration is correct?
hard
A. int *ptr = num;
B. int ptr = #
C. int *ptr = #
D. int &ptr = num;
Solution
Step 1: Understand pointer declaration for modifying variable
To modify num via pointer, pointer must hold address of num, declared as int *ptr.
Step 2: Check each option
int *ptr = # correctly declares pointer to int and assigns address of num. Others are invalid syntax or wrong types.
Final Answer:
int *ptr = # -> Option C
Quick Check:
Pointer to int = &variable for modification [OK]
Hint: Use int *ptr = &var to modify var via pointer [OK]
Common Mistakes:
Assigning value instead of address
Using wrong type for pointer
Confusing references with pointers
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.