Types of Pointers

Home / C Programming / Types of Pointers

Types of Pointers


In C programming, pointers are variables that store memory addresses. They play a crucial role in manipulating memory and data efficiently. There are different types of pointers in C, based on the data they point to and their usage. Here are some common types:

Pointer to int (int pointer):

int *ptr;

Pointer to char (char pointer):

char *ptr;

Pointer to float (float pointer):

float *ptr;

Pointer to double (double pointer):

double *ptr;

Pointer to a specific user-defined data type (struct pointer):


Void pointer (generic pointer):

void *ptr;

A void pointer can store the address of any data type but cannot be directly dereferenced. You must cast it to the appropriate type before dereferencing.

Null pointer:

int *ptr = NULL;

A null pointer is a pointer that does not point to any memory location. It's often used to indicate that the pointer is not currently pointing to a valid address.

Pointer to a function (function pointer):

Function pointers are used to store the address of functions. Their syntax can be a bit complex due to the various ways functions can be defined in C. Here's a basic example:


Array pointers:

Pointers and arrays have a close relationship in C. An array name can be treated as a pointer to the first element of the array. For example:

int arr[5] = {1, 2, 3, 4, 5};

int *ptr = arr;

These are some of the common types of pointers in C. Each type has its specific use cases and is important for dynamic memory allocation, function passing, and other advanced programming techniques. Understanding pointers is crucial for mastering C programming and dealing with low-level memory operations.