Pointers
In C, a pointer is a variable that holds the memory address of another variable. Pointers allow you to directly manipulate the contents of memory, and they are a fundamental feature of the C programming language.
A pointer is declared by using the *
operator in a variable declaration, followed by the type of the variable that the pointer points to. For example:
int *ptr;
This declares a pointer ptr
that can hold the memory address of an int
type variable.
To initialize a pointer, you need to use the &
operator, which returns the memory address of a variable, and assign it to the pointer:
int x = 10;
int *ptr = &x;
Here, the memory address of x
is assigned to the pointer ptr
.
To access the value of a variable through a pointer, you need to use the *
operator:
printf("Value of x: %d\n", x);
printf("Value of *ptr: %d\n", *ptr);
This will produce the output:
Value of x: 10
Value of *ptr: 10
Pointers can also be used to dynamically allocate memory using the malloc
function from the standard library. This allows you to allocate memory at runtime, which can be useful for tasks such as creating arrays of a specific size or allocating memory for structures and objects.
Here's an example of how to allocate memory for an array of integers using pointers:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 5;
int *arr = (int*) malloc(n * sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
free(arr);
return 0;
}
This will produce the output:
1 2 3 4 5
Pointers are a powerful feature in C, but they can also be dangerous if not used correctly. For example, if a pointer is not properly initialized, it can lead to undefined behavior or even a program crash. Therefore, it's important to understand the basics of pointers before using them in your programs.
Leave a Comment