跳转至

16.指针

Go语言中也有指针类型,其用法和大多数语言一样,使用&获取变量地址,*获取地址的值。

&操作符还可以获取实变量结构体的成员变量的地址,如

a := mystruct{c: 1, d: 2}
&a.c // 可以获取a中成员c的地址

go语言中的map、slice其实都是指针。

指针类型的输出

在使用格式化打印时,使用这个格式化动词来打印地址%T

指针类型的声明

指针类型的格式如下:

var <variableName> *<typeName>

*string*int等。

指针类型方法

当定义一个方法的接收者为指针类型时,可以使用一般类型,即实类型去使用这个方法,此时,go语言会自动处理成取地址,也可以声明一个指针类型去调用这个方法。

其他

当对结构体使用指针时,访问其成员变量,可以不适用*先取值,这一点和C或C++有所不同。

且不可对内置类型的字面值取地址。