Pointer Operator in C Program
- To Create Pointer to a variable we use ‘*’ , ‘&’ Operator [ we have nothing to do with multiplication and Logical AND Here ]
- ‘&’ operator is called as address Operator
- ‘*’ is called as ‘Value at address’ Operator
- ‘Value at address’ Operator gives ‘Value stored at Particular address.
- ‘Value at address’ is also called as ‘Indirection Operator’
Program :
#include<stdio.h> int main() { int n = 20; printf("\nThe address of n is %u",&n); printf("\nThe Value of n is %d",&n); printf("\nThe Value of n is %d",*(&n)); }
Output:
The address of n is 1002 The Value of n is 20 The Value of n is 20
How *(&n) is same as printing the value of n ?
- &n gives address of the memory location whose name is ‘n’.
- ‘ * ‘ means value at Operator gives value at address specified by &n.
- m = &n : Address of n is stored in m , but remember that m is not ordinary variable like n
- So Ccompiler must provide space for it in memory
What does this declaration [ int *m ; ] tells compiler ?
- m is declared as that m will be used only for storing the address of the integer valued variables
- We can also say that m points to integer
- Value at the address contained in m is integer .

| Declaration | What it tells ? | Memory Required | |
| 1 | int *p | p is going to store address of integer value | 2 bytes |
| 2 | float *q | q is going to store address of floating value | 2 bytes |
| 3 | char *ch | ch is going to store address of character variable | 2 bytes |

