Pointer Arithmetic in C:
C pointers can be defined as a variable, pointing towards the address of a value. C also facilitates Arithmetic operations with Pointers. Some of these are:
C Pointer Increment:
Incrementing a pointer in C simply means to increase the pointer value step by step to point to the next location.
Logic:
Next Location = Current Location + i * size_of(data type)
Example 1: Example for C Pointer Increment.
#include<stdio.h> void main() { int n = 10; int *a; a = &n; printf("current address = %x \n",a); a = a+1; printf("next address = %x \n",a); } |
Output
current address = 5deb5ffc next address = 5deb6000 |
C Pointer Decrement:
Decrementing a pointer in C simply means to decrease the pointer value step by step to point to the previous location.
Logic:
Next Location = Current Location – i * size_of(data type)
Example 2: Example for C Pointer Decrement.
#include<stdio.h> void main() { int n = 10; int *a; a = &n; printf("current address = %x \n",a); a = a-1; printf("next address = %x \n",a); } |
Output
current address = d460f58c next address = d460f588 |
C Pointer Addition:
Addition in pointer in C simply means to add a value to the pointer value.
Logic:
Next Location = Current Location + (Value To Add * size_of(data type))
Example 3: Example for C Pointer Addition.
#include<stdio.h> void main() { int n = 10; int *a; a = &n; printf("current address = %x \n",a); a = a + 4; printf("next address = %x \n",a); } |
Output
current address = bfdcd58c next address = bfdcd59c |
C Pointer Subtraction:
Subtraction from a pointer in C simply means to subtract a value from the pointer value.
Logic:
Next Location = Current Location – (Value To Add * size_of(data type))
Example 4: Example for C Pointer Subtraction.
#include<stdio.h> void main() { int n = 10; int *a; a = &n; printf("current address = %x \n",a); a = a - 2; printf("next address = %x \n",a); } |
Output
current address = f2fd491c next address = f2fd4914 |