指针的概念
概念 | 说明 |
---|---|
变量 | 是一种占位符,用于引用计算机的内存地址。可理解为内存地址的标签 |
指针 | 表示内存地址,表示地址的指向。指针是一个指向另一个变量内存地址的值 |
& | 取地址符,例如:{指针}:=&{变量} |
* | 取值符,例如:{变量}:=*{指针} |
Go 有指针,但是没有指针运算。你不能用指针变量遍历字符串的各个字节。在 Go 中调用函数的时候,得记得变量是值传递的。通过类型作为前缀来定义一个指针’ * ’:var p * int。现在 p 是一个指向整数值的指针。所有新定义的变量都被赋值为其类型的零值,而指针也一样。一个新定义的或者没有任何指向的指针,有值 nil。在其他语言中,这经常被叫做空(NULL)指针,在 Go 中就是 nil 。让指针指向某些内容,可以使用取址操作符 ( & ),像这样:
package main
import "fmt"
func main() {
var p *int
fmt.Printf("%v\n",p) //← 打印 nil
var i int //← 定义一个整形变量 i
p = &i //← 使得 p 指向 i, 获取 i 的地址
fmt.Printf("%v\n",p) //打印内存地址
*p = 6
fmt.Printf("%v\n",*p) //打印6
fmt.Printf("%v\n",i) //打印6
}
暂时写到这里,改日再写