Go语言指针类型教程

中的指针类型,就是一个存放地址的 。Go 语言指针 存放的是一个地址,这个地址指向的空间存放的才是值。

Go 语言指针不支持指针的移动,这是 Go 语言指针与其他语言指针的区别。

Go语言指针类型详解

定义

var varname1 *type = &varname2

参数

参数 描述
var 定义变量所使用的关键字。
varname1 指针类型的变量。
type 指针变量的类型。
varname2 需要保持地址的变量。

说明

*

案例

指针类型

*
package main import ( "fmt" ) func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)") var score int32 = 99 var pScore *int32 = &score fmt.Println("Score = ", score, "PScore =", pScore) }

程序运行后,控制台输出如下:

45 golang pointer.png

*

最后,我们打印出 score 的值即为我们设置的初值, 打印 pScore 的值,pScore 的值为变量 score 的地址。

指针类型

*
package main import ( "fmt" ) func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)") var score int32 = 99 var pScore *int32 = &score var scoreVal = *pScore fmt.Println("Score = ", score, "PScore =", pScore, "ScoreVal =", scoreVal) }

程序运行后,控制台输出如下:

46 golang pointer.png

*

指针类型

指针可以修改变量的值

package main import ( "fmt" ) func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)") var score int32 = 99 var pScore *int32 = &score *pScore = 199 var scoreVal = *pScore fmt.Println("Score = ", score, "PScore =", pScore, "ScoreVal =", scoreVal, "Score =", score) }

程序运行后,控制台输出如下:

47 golang pointer.png

pScorescore

Go语言指针类型总结

Go 语言中的指针类型,就是一个存放地址的类型。Go 语言指针变量存放的是一个地址,这个地址指向的空间存放的才是值。

使用 & 符号可以获取一个变量的地址。使用 * 符号可以获取 Go 语言指针类型的地址所对应的值。Go 语言指针不支持指针的移动,这是 Go 语言指针与其他语言指针的区别。