Dereferencing a pointer means getting the value that is stored in the memory location pointed by the pointer. The dereference operator *
also known as indirection operator is used to do this, and is called the dereferencing operator. When indirection operator (*) is used with the pointer variable, then it is known as dereferencing a pointer.
Dereference a pointer is used because of the following reasons.
In the below example steps to dereference a pointer is given.
1) Declare the integer variable to which the pointer points.
int x =9;
2) Declare the integer pointer variable.
int *ptr;
3) Store the address of 'x' variable to the pointer variable 'ptr'.
ptr=&x;
Change the value of 'x' variable by dereferencing a pointer 'ptr' as given below:
*ptr =8;
The above code changes the value of 'x' variable from 9 to 8 because 'ptr' points to the 'x' location and dereferencing of 'ptr', i.e., *ptr=8 will update the value of x.
Below example combines all the above steps
#include <stdio.h> int main() { int x=9; int *ptr; ptr=&x; *ptr=8; printf("value of x is : %d", x); return 0;}
Let's consider another example.
#include <stdio.h> int main() { int x=4; int y; int *ptr; ptr=&x; y=*ptr; *ptr=5; printf("The value of x is : %d",x); printf("\n The value of y is : %d",y); return 0; }
In the above code.
Let's consider another scenario.
#include <stdio.h> int main() { int a=90; int *ptr1,*ptr2; ptr1=&a; ptr2=&a; *ptr1=7; *ptr2=6; printf("The value of a is : %d",a); return 0; }
In the above code:
Output