Unlocking the Power of Pointers in Go
Memory Addresses: The Foundation of Pointers
When you create a variable in Go, a memory address is allocated to store its value. This memory address is the key to understanding pointers. You can access this address using the &
operator, as shown in the example below:
num := 5
fmt.Println(&num) // prints the memory address of num
Introducing Pointer Variables
In Go, pointer variables store memory addresses. You can create a pointer variable using the *
operator, followed by the type of variable it points to. For example:
ptr := *int // ptr is a pointer variable of type int
Assigning Memory Addresses to Pointers
You can assign the memory address of a variable to a pointer variable. This allows you to access and modify the value stored at that address.
name := "John"
ptr := &name // ptr stores the memory address of name
fmt.Println(ptr) // prints the memory address of name
Accessing Values Through Pointers
To access the value stored at the memory address pointed by a pointer, you use the *
operator. This is called dereferencing.
fmt.Println(*ptr) // prints "John"
How Pointers Work in Go
Let’s explore a working example of pointers:
var ptr *int
var num int
ptr = &num // ptr stores the memory address of num
num = 22 // assign a value to num
*ptr = 2 // change the value at the memory address pointed by ptr
Frequently Asked Questions
- What is the default value of a pointer variable?
- The default value of a pointer variable is always
nil
when it’s not initialized.
- The default value of a pointer variable is always
- Can you create pointers using the
new()
function?- Yes, you can create pointers using the
new()
function, like this:var ptr = new(int)
.
- Yes, you can create pointers using the
- Can you create a pointer variable without using the
*
operator?- Yes, you can create a pointer variable without using the
*
operator, like this:ptr := &name
.
- Yes, you can create a pointer variable without using the