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
