Go语言基础之指针
前言
区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。
所有Go里面的指针比较简单,只需要记住以下几点:
&变量名: 获取变量的内存地址
*pointor:通过指针获取指针对应变量的值
package main
import "fmt"
func main() {
n := 28
fmt.Println(&n)
//1.&变量:获取变量的内存地址
p := &n
fmt.Printf("%T\n", p) //*int 存储int变量类型的内存地址的指针
//2.*指针变量:获取指针指向变量的值
v1 := *p
fmt.Println(v1)
fmt.Printf("%T\n", v1)
}什么是指针

不管是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)
} 相关推荐
csdnyasin 2020-06-28
penkgao 2020-06-13
qscool 2020-06-12
fengjing81 2020-06-06
AaronPlay 2020-06-02
lynjay 2020-06-02
twater000 2020-05-29
徐建岗网络管理 2020-05-13
qingsongzdq 2020-05-07
jeonkc 2020-05-06
lynjay 2020-05-03
徐建岗网络管理 2020-05-03
shangs00 2020-04-27
xuguiyi00 2020-04-22
qscool 2020-04-18