Pointer Arithmetic
Pointers are addresses and address are numbers (positive integers), so it makes sense that you can do arithmetic with them.
Pointers are the size of a word, which on most PCs is 32 bits (or four bytes).
Since pointers are integer address, common arithmetic operators can be used with them---only watch out, they don't behave like ordinary numbers!
To step from one element to the next increment the pointer.
Since pointers can point to different things (which can have different sizes, e.g., a char has a different size than an int--one byte versus four bytes), one "increment" can add a different amount to the address than another.
If we think of pointer arithmetic in terms of array addressing, then the different additive amounts "make sense."
Examples:
To find out the size of a data type, use the sizeof() operator.
E.g., sizeof(int) returns 4, sizeof(double) returns 8.