12 Типы и значения
Что такое указатель и когда он нужен?
Ответ
Указатель хранит адрес значения. *T — тип «указатель на T», &x берёт адрес, *p читает или меняет то, что по адресу. Функция с аргументом *int меняет переменную вызывающего. Арифметики указателей в языке нет.
Подробнее
Указатель нужен, когда значение должно измениться у вызывающего, когда nil означает «значения нет», или когда структура большая и её незачем копировать на каждый вызов. Маленькие структуры спокойно передают по значению.
package main
import "fmt"
func inc(n *int) {
*n++
}
func main() {
x := 1
inc(&x)
fmt.Println(x)
}