C dereference pointer in C Language
Categories: C language
As we already know that "what is a pointer", a pointer is a variable that stores the address of another variable. The dereference operator is also known as an indirection operator, which is represented by (*). When indirection operator (*) is used with the pointer variable, then it is known as dereferencing a pointer. When we dereference a pointer, then the value of the variable pointed by this pointer will be returned.
Why we use dereferencing pointer?
Dereference a pointer is used because of the following reasons:
It can be used to access or manipulate the data stored at the memory location, which is pointed by the pointer.
Any operation applied to the dereferenced pointer will directly affect the value of the variable that it points to.
Let's observe the following steps to dereference a pointer.
First, we declare the integer variable to which the pointer points.
int x =9;
Now, we declare the integer pointer variable.
int *ptr;
After the declaration of an integer pointer variable, we store the address of 'x' variable to the pointer variable 'ptr'.
ptr=&x;
We can change the value of 'x' variable by dereferencing a pointer 'ptr' as given below:
*ptr =8;
The above line 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.
Let's combine 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;}
In the above code:
1. We declare two variables 'x' and 'y' where 'x' is holding a '4' value.
2. We declare a pointer variable 'ptr'.
3. After the declaration of a pointer variable, we assign the address of the 'x' variable to the pointer 'ptr'.
4. As we know that the 'ptr' contains the address of 'x' variable, so '*ptr' is the same as 'x'.
5. We assign the value of 'x' to 'y' with the help of 'ptr' variable, i.e., y=*ptr instead of using the 'x' variable.