Pointing out the problem – pointer issues
Programming languages make use of different data types: numeric types such as integers, Boolean types to convey true and false, sets and arrays as composite data types; and so on. Pointers are yet another kind of data type: a reference. References are values that refer to data indirectly. For example, suppose I have a book with a map of each of the United States, on each page. If someone asks me where I live, I could say page 35 – an indirect reference to the data (the state map) on that particular page. References as a data type are, in themselves, simple; but the datum to which a reference refers can itself be a reference. Imagine the complexity that is possible with this cute little object.
Dereferencing pointers in C and assembly
Pointers, as a reference data type, are considered low-level because their values are used as memory addresses. A pointer points at a datum, and the actual memory address of the datum is therefore the value of the pointer...