Go语言基础之指针

心已入冬 提交于 2020-03-28 12:38:02

前言

区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。

 

 

 

什么是指针

 

 

不管是Python还是Go程序 执行过程中数据载入内存后,在计算机内存中都有它们的内地址,这就是指针。

指针的作用就是保存某1个数据在内存中的内存地址,方便我们在内存中快速查找到该数据(变量)。

在Go语言中的值类型(int、float、bool、string、array、struct)都有对应的指针类型,如:*int*int64*string等。

 

指针操作

package main

import "fmt"

func main() {
	//基本数据类型在内存中的布局
	var i int = 10
	//获取变量i的内存地址
	fmt.Println("变量i的内存地址:", &i)
	//声明1个 ptr指针变量,指向1个类型为int的内存地址
	var ptr *int = &i
	fmt.Println(ptr)
	//获取指针的内存地址
	fmt.Println(&ptr)
	//通过指针获取变量i对应的值(10)
	fmt.Println(*ptr)
	//通过指针修改变量i对应的值
	*ptr = 222
	fmt.Println(i)

	//通过指针修改变量的值
	name := "成龙"
	age := "18"

	por1 := &name
	*por1 = "JackCheng"
	por1 = &age
	*por1 = "68"
	fmt.Println(name, age)

}

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

see also

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!