So you want a pointer, huh?
Pointer syntax, though relatively straightforward, can be confusing at first.
Before we can use a pointer, the first thing we need is a pointer itself, so how do we declare one? Declaration of a pointer is done just like any other variable:
If you look at the declaration above, you'll notice that it looks the same as a declaration of an int, with the exception of the asterisk (*) in front of steve. The asterisk is used in a variable declaration to tell the computer we'd like a pointer. In the above case, we're asking the computer for a pointer variable, named steve that can point to a integer. To compare: int steve -> steve is an integer variable int *steve -> steve is a pointer variable that can point to an integer variable
Let's look at some more:
|What it means
|steve is an integer
|steve is a pointer to an integer
|steve is a character
|steve is a pointer to a character
|steve is a long integer
|steve is a pointer to a long integer
|unsigned char steve
|steve is an unsigned character
|unsigned char *steve
|steve is a pointer to an unsigned character
But pointers can point to more than just the simple data types like integers and characters. We can have pointers to numerous instances of a data type. In fact, this is so common that it is given a separate name (an array) and a separate syntax. See the Arrays SparkNote for details on the use of arrays.
In addition, we can declare pointers to data types that we define ourselves: