Go Pointers
In Go, a pointer is a variable that stores the memory address of another variable. Pointers are useful when you want to modify the value of a variable passed to a function or when you want to allocate memory dynamically.
To declare a pointer in Go, you use the *
symbol followed by the type of the variable being pointed to. For example, the following code declares a pointer to an integer:
var p *int
This declares a pointer variable named p
that can point to an integer value. Note that at this point, p
does not point to anything yet; it is just a pointer variable with a value of nil
.
To get the address of a variable in Go, you use the &
operator followed by the variable name. For example, the following code gets the address of an integer variable x
:
var x int = 42 var p *int = &x
This declares an integer variable x
with a value of 42
, and then declares a pointer variable p
that points to x
.
To get the value of a variable through a pointer in Go, you use the *
operator followed by the pointer variable name. For example, the following code gets the value of x
through the pointer p
:
fmt.Println(*p) // prints "42"
This code dereferences the pointer p
and returns the value of the integer variable it points to.
To modify the value of a variable through a pointer in Go, you can use the *
operator to set the value of the variable. For example, the following code modifies the value of x
through the pointer p
:
*p = 99 fmt.Println(x) // prints "99"
This code sets the value of the integer variable that p
points to to 99
, which also changes the value of x
.