C pointer operator

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 :

OperatorOperator NamePurpose
*Value at OperatorGives Value stored at Particular address
&Address OperatorGives Address of Variable

In order to create pointer to a variable we use “*” operator and to find the address of variable we use “&” operator.

Don’t Consider “&” and “*” operator as Logical AND and Multiplication Operator in Case of Pointer.

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("\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 ?

&nGives address of the memory location whose name is ‘n’
*means value at Operator gives value at address specified by &n.
m = &nAddress 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 .
DeclarationExplanationMemory Required
1int *pp is going to store address of integer value2 bytes
2float *qq is going to store address of floating value2 bytes
3char *chch is going to store address of character variable2 bytes
In the next chapter we will be learning - How to Declare Pointer Variable ?.