For every type, there is a pointer type. Since there
is an int
type, there is also a pointer-to-int
type, written int *.
float *
is the pointer-to-float
type. When assigning a pointer value to a variable, or
comparing two pointer values, the types must match. Given
these declarations:
int i, j; float f; int *ip; float *fp;
…then i is of type
int,
so the expression &i must
be of type int *.
ip is also of type
int *,
so you can assign &i to
it. &j is of type
int *,
so it can be compared with &i, and so on.
But &f is of type
float *,
so it cannot be assigned to ip, or compared with ip, &i or
&j.