Go语言之指针

GO语言之指针:指针类型是一个特殊的变量,用来存储另一个变量的地址。

  变量存储在内存中 如图所示a变量存储在内存中,地址为0x0001,通过&(取址符号)获得a变量的内存地址,即&a=0x0001。定义一个指针变量p,其中存储的是变量a的内存地址,如果获取变量a的具体值那么需要在指针变量p前边加*(即 *p)。

  Go语言中指针的作用:1、可以改变传入参数的值,如果不使用指针的话只是对值的拷贝,不能去改变;2、可以节省内存,如果是比较大的struct作为参数,那么显然拷贝一个指针比拷贝整个结构代价要小一些。

代码如下所示:

 1 package main
 2 
 3 import "fmt"
 4 
 5 func main() {
 6     //定义变量
 7     var a int = 10
 8     //定义指针变量
 9     var p *int
10     //p中存放的是变量i的内存地址
11     p = &a
12     //分别输出
13     fmt.Printf("变量的内存地址是:%x
", &a)
14     fmt.Printf("指针变量p:%x
", p)
15     fmt.Println(*p)
16 }

输出结果:

变量的内存地址是:c00000a0d0
指针变量p:c00000a0d0
10

原文地址:https://www.cnblogs.com/yh2924/p/12420713.html