码迷,mamicode.com
首页 > 编程语言 > 详细

Go语言基础之指针

时间:2020-03-28 13:46:49      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:pointer   struct   mamicode   基础   修改   code   数据   pos   过程   

前言

区别于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)

}

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

see also

Go语言基础之指针

标签:pointer   struct   mamicode   基础   修改   code   数据   pos   过程   

原文地址:https://www.cnblogs.com/sss4/p/12586637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!