There are two types of pointer operators. They are
1. Address operator(&)
2. Indirection operator(*)
Address Operator:
It is used to get the address of the given variable. Consider the following,
Example:
int a = 10, *ptr;
ptr = &a;
Here, &a gives us the address of the variable a and the same is address to pointer variable ptr. Address operator is also known as reference operator.
Indirection operator:
It is used to get the value stored in an address. Consider the following,
Example:
int a = 10, b, *ptr;
ptr = &a; // referencing(&a)
b = *ptr; // dereferencing(*ptr)
Here, ptr has the address of the variable a. On dereferencing the pointer ptr, we will get the value stored at the address of a.
1. Address operator(&)
2. Indirection operator(*)
Address Operator:
It is used to get the address of the given variable. Consider the following,
Example:
int a = 10, *ptr;
ptr = &a;
Here, &a gives us the address of the variable a and the same is address to pointer variable ptr. Address operator is also known as reference operator.
Indirection operator:
It is used to get the value stored in an address. Consider the following,
Example:
int a = 10, b, *ptr;
ptr = &a; // referencing(&a)
b = *ptr; // dereferencing(*ptr)
Here, ptr has the address of the variable a. On dereferencing the pointer ptr, we will get the value stored at the address of a.
Example C program on pointer operators
#include <stdio.h> int main() { int a = 10, b, *ptr; ptr = &a; // referencing (&a) b = *ptr; // dereferencing (*ptr) printf("Value of &a is 0x%x\n", &a); printf("Value of ptr is 0x%x\n", ptr); printf("Value of a is %d\n", a); printf("Value of b is %d\n", b); printf("Value of *ptr is %d\n", *ptr); return 0; }
Output:
jp@jp-VirtualBox:~/$ ./a.out
Value of &a is 0xbfb1715c
Value of ptr is 0xbfb1715c
Value of a is 10
Value of b is 10
Value of *ptr is 10
Value of &a is 0xbfb1715c
Value of ptr is 0xbfb1715c
Value of a is 10
Value of b is 10
Value of *ptr is 10
No comments:
Post a Comment