Go语言如何使用指针变量
1、打开VScode开发工具,新建‘Pointer.go’文件
2、普通类型变量的值存在内存的栈,要得到变量的地址可以使用符号&,例如下面定义一个int类型的变量a,a的值是10,打印出a的地记醋弭床址,代码如下:packagemainimport"fmt"funcmain(){varaint=10fmt.Println("a的地址是:",&a)}
3、保存代码后,在VScode开发工具的终端,运行代码go run Pointer.go打印出a变量的地址
4、指针变量不同于普通类型变量在于指针变量的值是一个内存地址,这个地址存放一个值,叫做指针指向的值。修改代码如下:packagemainimport"fmt"funcmain(){varaint=10fmt.Println("a的地址是:",&a)varp*int=&afmt.Println("p的值是:",p)}
5、保存代码后,在VScode开发工具的终端,运行代码go run Pointer.go打印出a变量的地址,指针变量p的值,可以发现这两者是相等的,因为p是指针变量,指针变量的值是一个地址,而例子中是将a的地址赋值给了p
6、那么指针变量存放地址指向的值又是多少呢,其实就是a变量的值,因为存放的地址是a变量的地址,修改代码验证一下:packagemainimport媪青怍牙"fmt"funcmain(){varaint=10fmt.Println("a的地址是:",&a)varp*int=&afmt.Println("p的值是:",p)fmt.Println("p指向的值是:",*p)}
7、保存代码后,在VScode开发工具的终端,运行代码go run Pointer.go打印出a变量的地址,指针变量p的值,p指向的值为10,就是a变量的值,验证了上一步的结论。