It follows a special arithmetic called as pointer arithmetic.
A pointer is declared as:
int *ap;int a = 5;
In the above two statements an integer a was declared and initialized to 5. A pointer to an integer with name ap was declared.
Next before ap is used
ap=&a;
This operation would initialize the declared pointer to int. The pointer ap is now said to point to a.
Operations on a pointer:
· Dereferencing operator ' * ': This operator gives the value at the address pointed by the pointer . For example after the above C statements if we giveprintf("%d",*ap);
Actual value of a that is 5 would be printed. That is because ap points to a.
· Addition operator ' + ': Pointer arithmetic is different from ordinary arithmetic.
ap=ap+1;
Above expression would not increment the value of ap by one, but would increment it by the number of bytes of the data type it is pointing to. Here ap is pointing to an integer variable hence ap is incremented by 2 or 4 bytes depending upon the compiler.