Learn

Since pointers are used to store the memory address of a variable, we need to obtain this address first. This is done by using the reference operator (&). The syntax for this is:

&variableName;

Consider the following piece of code:

``````int x = 9;
printf("%p", &x);``````

This will output to the screen the memory address of the variable `x`. To assign an address to a pointer, the following syntax is used:

pointer = &variableName;

Consider the following example:

``````int x = 727; // Declare variable x
int* ptr = &x; // Declare a pointer to an int variable and assign to it the address of variable x
printf("%p\n", &x); // Print the address of x
printf("%p\n", ptr); // Print the address pointed to by ptr ``````

The code above declares an integer variable `x` and an `int` pointer variable `ptr`. The pointer is then assigned the memory of the variable `x`. The last two `printf()` statements print this address; both lines will output the same hexadecimal number as they both refer to the same address in memory.

The address a pointer contains is not constant. A pointer may be reassigned to a new address so long as type consistency is maintained (e.g., `int` pointer points to a variable of type `int`). Consider this example:

``````int* ptr; // Declare pointer to an integer type

int x = 3; // Declare variable x
ptr = &x; // Assigns memory address of variable x to the pointer
printf("%p\n", ptr); // Prints address of variable x

int y = 14; // Declare variable y
ptr = &y; // Reassigns the pointer to the memory address of variable y
printf("%p\n", ptr); // Prints address of variable y``````

### Instructions

1.

Declare a pointer to a `double` called `dblPtr` and assign to it the address of variable `g`.

2.

Print the address of variable `g`.

3.

Reassign `dblPtr` to the address of the variable `pi`.