-
基本数据类型,变量存的是一个值,基本数据类型也叫做值类型。
-
获取变量的内存地址,我们可以使用
&
符号,例如:var num int = 10 fmt.Println("num =", &num)
# clover @ MacBook-Pro in ~/dev/go/learn/src/go_code/learn/pointer [20:52:39] $ go run main.go num = 0xc0000180a8
-
指针类型,
*T
类型就是一个指针,指针变量存的是一个地址,这个地址指向的空间存的才是真正的值,例如:var num int = 10 var prt *int = &num
所谓的指针,其实就是一个存了其它变量内存地址的变量,例如以上代码
假设:num 内存地址是 0xc0000180a8,prt 内存地址是 0xc000012028 prt: 0xc000012028 --> 0xc0000180a8 --> 10
-
如果需要获取指针类型所指的指,可以使用
*
符号来取var num int = 10 var prt *int = &num fmt.Println("prt =", *prt)
# clover @ MacBook-Pro in ~/dev/go/learn/src/go_code/learn/pointer [21:07:38] $ go run main.go prt = 10
指针的简单用法:
var num int = 9
var prt *int = &num
*prt = 10
fmt.Println(num) // 这里输出10而不是原先的9