Pointers and their Rules in C Language

Arithmetic operation on pointers

  int i1,i2; in t*p1,*p2; p1=&p1; p2=&p2;  

  • p1+p2; error
  • p1+1, Next address
  • ++p1,p1++ = Next Address
  • p2-p1 No of elements
  • p2-1; previous elements address
  • - -p2, Previous Address
  • p1*p2; error
  • p1*5; error
  • p1/p2; error
  • p1/p2; error
  • p1%p2; error
  • p1%2.error p2-

Pointer rules :

Rule 1:

Address + Number = Address (Next Address) Address – Number  = Address(pre Address) Address ++=Address(Next address) Address--=Address(Pre Address) ++ Address= Address(Next Address) --Address = Address(Pre address)  

Rule 2:

Address – Address = Number(No.of elements) = size diff/sizeof(datatype) int*p1=(int*)100; int*p2=(int*)200; p2-p1=50 200-100 ------- > 100/size of(int)  

Rule 3:

Address + Address=Illegal. Address * Address= illegal Address/Address= illegal Address%Address=illegal  

Rule 4:

We can use relational operator and conditional operator b/w two pointers(<,>,<=,>=,==,!=,?!) Address  > Address = T/F Address  > = Address = T/F  

Rule 5:      

We can’t perform bitwise operation b/w two pointers like Address & Address = illegal Address | Address=Illegal Address ^ Address = illegal ~ Address=illegal  

Rule 6:

We can find the size of a pointer using the size of the operator.              

For an in-depth understanding of Pointers click on