In the previous exercise we went over addresses, now let’s learn how to store them. In Go, pointers do that job for us. Pointers are variables that specifically store addresses.
We even set the data type of the addresses’ value for the pointer. For instance:
var pointerForInt *int
In the example above
pointerForInt will store the address of a variable that has an
int data type. To break it down further, the
* operator signifies that this variable will store an address and the
int portion means that the address contains an integer value.
pointerForInt initialized, we can assign it value like so:
var pointerForInt *int minutes := 525600 pointerForInt = &minutes fmt.Println(pointerForInt) // Prints 0xc000018038
Notice in our example that
minutes has a value of
525600, an integer type. Since we’ve initialized
pointerForInt as a pointer that will hold the address of an integer value, we can then assign the address of
pointerForInt. Printing out
pointerForInt, we get another hexadecimal number:
We can also declare a pointer implicitly like other variables:
minutes := 55 pointerForInt := &minutes
Let’s see how we would create a pointer for a string instead!
Given the string
star, create a pointer called
starAddress that holds the address of
Print out the string
"The address of star is" followed by the value of