In C, a byte of memory can be accessed using a pointer. A pointer containing the address of a variable is said to “point” to that variable.
Recall that when you declare a variable, a contiguous block of bytes is reserved in memory. A pointer to a variable is the address of the first of these bytes. A pointer can be created for every type of variable: be it primitive (for example
double), a custom data type created using a
struct (we’ll cover those in a later lesson), or even another pointer. The syntax of a pointer is the following:
For example, to declare a pointer variable (called
ptr) that points to an
int, you would write:
int* ptr; // Pointer to an int int *ptr; // Same as above but different style.
In this case,
ptr stores the address of the first byte of a block of memory containing an
int. To print this address to the screen,
printf() is used like so:
int* ptr; // Pointer to an int printf("%p", ptr); // %p needed to instruct printf that ptr is of type pointer.
This will output a hexadecimal integer that represents the address in memory that is storing a variable of type
int. This number will be different every time the program is executed.
In later exercises, we will see how to use pointers.
Create a pointer variable called
dblPtr that points to a variable of type
Print the address stored in
dblPtr to the screen.