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