指针就是一个变量,用于存储另一个变量的内存地址,所有的数据都存储在内存中,变量 只是给某一块的地址起的别名。
指针也是一个变量,他指向的内存存储的不仅是一个值,而且是另一个值的内存地址

指针声明
指针的的语法声明如下:
指针的初始化 和 输出
指针的初始化只需给它赋予其他变量的内存地址入口,变量的地址通过符号&获取
1 2 3 4 5 6
| var a = 10 var p *int = &a
fmt.Println(a) fmt.Println(p) fmt.Println(*p)
|
多重指针
确切含义是指向指针的指针
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| var a = 10
var p = &a
var pp = &p
fmt.Println(a) fmt.Println(p) fmt.Println(*p) fmt.Println(&p) fmt.Println(pp) fmt.Println(*pp) fmt.Println(***pp)
|
通过引用赋值
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package main
import "fmt"
func main() { var k int setK(&k) fmt.Print(k) }
func setK(key *int) { *key = 10 }
|
tip: go中没有指针算术运算