Examine the following:
#include <stdio.h> int main( void ) { int a = 99; int *pa ; int *qa ; pa = &a ; qa = pa ; printf("a=%d *pa=%d *qa=%d\n", a, *pa, *qa ); return 0; }
In this example, the variable a
is an int
, as previously.
But now there are two variables,
pa
and qa
that can
point to an int.
The fourth statement pa = &a
points pa
to a
.
The fifth statement qa = pa
copies whatever value is in pa
to qa
.
This is just like any assignment statement: value on the right
of the =
is copied into the variable
on the left.
Here is where you need to keep in mind pointer variable vs. pointer value.
There is a value in the variable pa
.
That value (which happens to be a pointer value) is copied into another variable qa
(
which happens to be a pointer variable.)
What does the program write to the monitor?