What does the following code write to the monitor?
#include <stdio.h>
int main( void )
{
int a = 77 ;
int *pa = &a ;
printf("a=%d *pa=%d\n", a, *pa );
return 0;
}
In this example, the variable a is declared to be
an integer variable and assigned the value 77,
all in one statement.
The variable pa
is declared to hold a pointer to an integer
and is initialized to point at a, all in one statement.
Confusion Alert: Initialization and assignment are not the same!
The declaration
int *pa;
says that the variable pa will point to an int.
The asterisk * shows how the variable will be used.
The declaration and initialization
int *pa = &a;
declares the variable (as above) and puts the address of a into it.
Later on in the code, after a pointer variable has been declared, put the address of a variable into it like this:
pa = &a;
Carefully note the difference between initialization and assignment.