目录
前言
指针顾名思义就是指明方向的, golang中的指针同样也是如此, 指针是复杂数据类型中的一种, 它保存的是一块内存空间的引用地址, 也就是说指针的值是一个地址且必须是一个地址, 同时指针变量指向的类型必须和存储地址对应的变量类型一致, 变量的地址我们可以通过 & 符号打印出来
使用指针
概述: 指针存储同类型数据的地址, * pointerName 可以访问到值地址对应的数据, 可以进行修改操作
package main
import (
"fmt"
)
// 复杂数据类型之指针
func main() {
num := 332
var pointerNum *int = &num
// var pointerNum *int64 = &num // 错误 int类型不能赋值给int64类型的指针
fmt.Printf("num的地址 %v\n", &num)
fmt.Printf("pointerNum的值 %v, pointerNum的地址 %v\n", pointerNum, &pointerNum)
fmt.Printf("pointerNum的值是num的地址,num地址对应存储的值是 %v\n", *pointerNum)
*pointerNum = 333
fmt.Printf("pointerNum的值是num的地址,num地址对应存储的值是 %v", *pointerNum)
}
总结
1. 指针只能存储地址, 且类型必须相同
2. & 符号取变量地址
3. * 符号取指针的地址值对应的数据