Pointer Arithmetic
When doing pointer arithmetic, the adding value will be based on the type of pointer
For example if we have this:
#include <stdio.h>
int main() {
int *ptr;
printf("Pointer is %p, pointer value is %d\n", ptr, *ptr);
printf("nextPointer is %p, pointer value is %d\n", ptr + 1, *(ptr + 1));
}
In here, since our pointer is an int
which of size 4
. It will be +4
when we do ptr + 1
Pointer is 0x1004d5b90, pointer value is -401472408
nextPointer is 0x1004d5b94, pointer value is 1
It's because from address 0x1004d5b90
it's reserved 4 bytes for the current int
, therefore the next int
would be at 0x1004d5b94
.