Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
When to use references vs. pointers in C/C++
In C programming, we work with pointers to access memory addresses and manipulate data indirectly. C does not have reference variables like C++, but understanding the difference helps when transitioning between languages.
Syntax
// Pointer declaration and usage datatype *pointer_name; pointer_name = &variable_name;
Pointers in C
Pointers are variables that store memory addresses of other variables. They provide indirect access to data and enable dynamic memory allocation.
Example: Basic Pointer Usage
#include <stdio.h>
int main() {
int a = 8;
int *ptr;
ptr = &a;
printf("Value of variable: %d\n", a);
printf("Address of variable: %p\n", (void*)ptr);
printf("Value via pointer: %d\n", *ptr);
/* Modify value through pointer */
*ptr = 15;
printf("Modified value: %d\n", a);
return 0;
}
Value of variable: 8 Address of variable: 0x7fff5fbff6ac Value via pointer: 8 Modified value: 15
When to Use Pointers
- Dynamic memory allocation − Using malloc(), calloc(), realloc()
- Function parameters − To modify variables outside function scope
- Arrays and strings − Efficient array traversal
- Data structures − Linked lists, trees, graphs
- Optional parameters − Can be NULL to indicate absence
Example: Function Parameter Modification
#include <stdio.h>
void swap(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
}
int main() {
int a = 10, b = 20;
printf("Before swap: a = %d, b = %d\n", a, b);
swap(&a, &b);
printf("After swap: a = %d, b = %d\n", a, b);
return 0;
}
Before swap: a = 10, b = 20 After swap: a = 20, b = 10
Key Pointer Characteristics
| Feature | Description |
|---|---|
| Reassignment | Can point to different variables |
| Null value | Can be NULL |
| Arithmetic | Supports pointer arithmetic |
| Memory | Requires separate memory space |
Conclusion
In C programming, pointers are essential for dynamic memory management, function parameter modification, and building complex data structures. They provide flexibility and power but require careful handling to avoid memory errors.
Advertisements
