How pointer & and * and ** works in Golang?
The below program is curry of pointers. The value of intVar is equals to value of **pointerToPointerVar.
Example
package main
import "fmt"
func main() {
var intVar int
var pointerVar *int
var pointerToPointerVar **int
intVar = 100
pointerVar = &intVar
pointerToPointerVar = &pointerVar
fmt.Println("\n")
fmt.Println("intVar:\t\t\t", intVar)
fmt.Println("pointerVar:\t\t", pointerVar)
fmt.Println("pointerToPointerVar:\t", pointerToPointerVar)
fmt.Println("\n")
fmt.Println("&intVar:\t\t", &intVar)
fmt.Println("&pointerVar:\t\t", &pointerVar)
fmt.Println("&pointerToPointerVar:\t", &pointerToPointerVar)
fmt.Println("\n")
fmt.Println("*pointerVar:\t\t", *pointerVar)
fmt.Println("*pointerToPointerVar:\t", *pointerToPointerVar)
fmt.Println("**pointerToPointerVar:\t", **pointerToPointerVar)
}
Output
intVar: 100
pointerVar: 0x1142214c
pointerToPointerVar: 0x114240e0
&intVar: 0x1142214c
&pointerVar: 0x114240e0
&pointerToPointerVar: 0x114240e8
*pointerVar: 100
*pointerToPointerVar: 0x1142214c
**pointerToPointerVar: 100
Most Helpful This Week
What is Rune? How to get ASCII value of any character in Go?
User Defined Function Types in Golang
How to use Ellipsis (...) in Golang?
How to reads and decodes JSON values from an input stream?
How to use function from another file golang?
Simple function with parameters in Golang
Subtract N number of Year, Month, Day, Hour, Minute, Second, Millisecond, Microsecond and Nanosecond to current date-time.
Strip all white spaces, tabs, newlines from a string
How to declare empty Map in Go?
Example of Sscan vs Sscanf vs Sscanln from FMT Package