Go指针是存储变量内存地址的变量,通过&获取地址、声明类型或解引用访问值;例如&num得int指针,ptr读取num值,new(int)创建匿名变量并用p=42赋值。

理解Go语言中的指针,核心在于抓住“地址”和“值”这两个概念。简单说,指针就是一个变量,它存储的是另一个变量的内存地址,而不是数据本身。通过这个地址,我们可以直接访问或修改那个变量的值。掌握指针是写出高效、地道Go代码的关键一步。
指针的基本语法:& 和 *
Go语言中操作指针主要依赖两个符号:& 和 *。
- & (取地址符): 放在变量前,用于获取该变量的内存地址。例如,var num int = 10,那么 &num 就会得到 num 变量的地址,其类型是 *int(指向int的指针)。
- * (解引用符): 有两个作用。一是用于声明指针类型,如 var ptr *int 声明了一个可以存放int类型变量地址的指针。二是用于访问指针所指向的值,比如 ptr := # fmt.Println(*ptr) 会输出10,这里的 *ptr 就是在“解引用”,拿到ptr指向的那个值。
一个完整的例子是:先用 new(int) 创建一个匿名的int变量,并返回指向它的指针,然后通过 *p = 42 来设置这个匿名变量的值。基本上就这些。









