Hello Code Explorers! 👋
We’re starting a brand-new series on Pointers in C — one of the
most exciting and powerful concepts in C programming.
If you’ve been wondering “What is a pointer? Why do we
need it?”, you’re in the right place. 🚀
🔹 What is a Pointer?
A pointer is a variable that stores the memory
address of another variable.
Think of it like a GPS coordinate: instead of
carrying the item itself, you carry its location. 🗺️
Why do we need pointers?
- To access
variables directly in memory
- To pass
large data efficiently
- To work
with arrays and functions effectively
- To understand
low-level memory operations
🔹 Pointer Syntax
data_type *pointer_name;
- data_type
→ type of variable the pointer points to
- * →
indicates this is a pointer
- pointer_name
→ the name of the pointer
🔹 Example 1: Basic Pointer
#include <stdio.h>
int main() { int num = 42; // normal variable int *ptr; // pointer to int ptr = # // store address of num in ptr
printf("Value of num = %d\n", num); printf("Address of num = %p\n", &num); printf("Value stored in ptr = %p\n", ptr); printf("Value pointed by ptr = %d\n", *ptr);
return 0;}
🧾 Expected Output:
Value of num = 42
Address of num = 0x7ffee1a5a9a0
Value stored in ptr = 0x7ffee1a5a9a0
Value pointed by ptr = 42
Explanation:
- ptr
stores the address of num
- *ptr
dereferences the pointer to get the value stored at that address
🔹 Example 2: Changing Value Through Pointer
#include <stdio.h>
int main() {#include <stdio.h>
int main() { int x = 50; int *ptr = &x;
printf("Before: x = %d\n", x); *ptr = 100; // change value of x through pointer printf("After: x = %d\n", x);
return 0;}
🧾 Expected Output:
Before: x = 50
After: x = 100
Explanation:
- *ptr
= 100 modifies x directly through the pointer
🔹 Pointer and NULL
Always initialize pointers before use to avoid undefined behavior.
#include <stdio.h>
int main() { int *ptr = NULL;
if(ptr == NULL) { printf("Pointer is not pointing to any valid memory\n"); }
return 0;}
🧾 Expected Output: Pointer is not pointing to any valid memory
🔹 Void (Generic) Pointer
A void pointer (also called a generic pointer)
is a pointer that can point to any data type.
It’s useful when you don’t know the type of data in advance.
Key Points:
- Declared
as void *ptr;
- Cannot
be dereferenced directly — you need to cast it to the appropriate
type first
- Can
store the address of int, float, char, etc.
✅ Example: Void Pointer
#include <stdio.h>
int main() { int a = 10; float b = 3.14; char c = 'Z';
void *ptr;
// Point to int ptr = &a; printf("Value of a = %d\n", *(int *)ptr);
// Point to float ptr = &b; printf("Value of b = %.2f\n", *(float *)ptr);
// Point to char ptr = &c; printf("Value of c = %c\n", *(char *)ptr);
return 0;}
🧾 Expected Output:
Value of a = 10
Value of b = 3.14
Value of c = Z
Explanation:
- ptr
can hold the address of any type
- We
cast it to the correct type before dereferencing: *(int *)ptr, *(float
*)ptr, etc.
🔹 Key Points to Remember
✅ Pointers store addresses,
not values
✅
Use & to get a variable’s address
✅
Use * to dereference a pointer and get or modify the value
✅
Always initialize pointers — don’t leave
them dangling
✅
Void pointers can point to any data type, but must be cast
before use
🧠Mini Assignments
🎯 Assignment 1:
Declare an integer variable, create a pointer to it, and print:
- The
value of the variable
- The
address of the variable
- The
value stored in the pointer
- The
value obtained by dereferencing the pointer
🎯 Assignment 2:
Create two integer variables, a and b.Use a pointer to copy the value of a into b. Print both variables.
🎯 Assignment 3:
Write a program to change the value of a variable using a pointer and print the value before and after modification.
🎯 Assignment 4 (Void Pointer Practice):
Create variables of int, float, and char.Use a void pointer to print all three values by casting appropriately.
💬 Share your programs
with the ProgVeda Community! 🌟
Pointers are the gateway to advanced C programming, and mastering them
will make arrays, functions, and memory management much easier.
Next up (Part 2):
We’ll explore Pointers and Arrays —
- How
pointers can traverse arrays
- Why
arrays and pointers are closely related
- Beginner-friendly
examples and challenges
Post a Comment