C pointer operator

Education is not limited to just classrooms. It can be gained anytime, anywhere... - Ravi Ranjan (M.Tech-NIT)

In the previous chapter we have learnt about finding the size of pointer variable. In this chapter we will be learning about different pointer operators in C Programming language.

Pointer Operator in C Program :

Operator Operator Name Purpose
* Value at Operator Gives Value stored at Particular address
& Address Operator Gives Address of Variable

In order to create pointer to a variable we use “*” operator and to find the address of variable we use “&” operator.
[box]Don’t Consider “&” and “*” operator as Logical AND and Multiplication Operator in Case of Pointer.[/box]

Important Notes :

  1. ‘&’ operator is called as address Operator
  2. ‘*’ is called as ‘Value at address’ Operator
  3. Value at address’ Operator gives ‘Value stored at Particular address.
  4. ‘Value at address’ is also called as ‘Indirection Operator’

Pointer Operators : Live Program

#include<stdio.h>

int main()
{
int n = 20;
printf("
The address of n is %u",&n);
printf("
The Value of n is %d",n);
printf("
The 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.Below is Step by Step Calculation to compute the value –

m  =  * ( &n   )
   =  * ( Address of Variable 'n')
   =  * ( 1000 )
   =  Value at Address 1000
   =  20

What Does following declaration tells compiler ?

int *ptr;
  1. ‘ptr’ is declared as that ‘ptr’ will be used only for storing the address of the integer valued variables
  2. We can also say that ‘ptr’ points to integer
  3. Value at the address contained in ‘ptr’ is integer .
  Declaration Explanation 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


In the next chapter we will be learning – How to Declare Pointer Variable ?.