首页 > 编程知识 正文

go 值方法 指针方法,go 指针运算

时间:2023-05-05 19:22:45 阅读:250749 作者:3358

目录

简介

声明

空指针

零值指针

声明并初始化

指针的指针

内存

函数传递指针

全部代码

结果截图


简介 取地址符是&指针保存的是地址,地址里的数据才是真正的值,使用*来获取值

int系列、float系列、boo;、string、数组、结构体struct都有指针,一般在栈

指针、切片、管道、接口、Map是引用类型,一般在堆,GC回收

声明 空指针

Go中的空指针是nil

var ptr *int 零值指针

func new(Type) *Type

内建函数new分配内存。其第一个实参为类型,而非值。其返回值为指向该类型的新分配的零值的指针。 

ptr1 := new(int) 声明并初始化 i := 10ptr2 := &i

ptr2存的是i的地址

指针的指针 pptr := & ptr2

pptr存的是ptr2的地址

内存

以前面的指针和指针的指针为例

内存结果见后序截图

函数传递指针 func plus(p *int) {(*p)++} plus(ptr2) 全部代码 package mainimport "fmt"func plus(p *int) {(*p)++}func main() {//------------声明指针------------//---空指针---var ptr *int//---零值指针---ptr1 := new(int)fmt.Println("ptr ptr1 *ptr1,:",ptr,ptr1,*ptr1)//-----------声明并初始化----------i := 10ptr2 := &ifmt.Printf("i的地址&i:%v,i的值:%v,ptr2的地址&ptr2:%v,ptr2的值:%v,ptr2指向的值:%vn",&i,i,&ptr2,ptr2,*ptr2)//-------------指针的指针----------pptr := & ptr2fmt.Printf("pptr的地址&pptr:%v,pptr的值pptr:%v,pptr指向的值*pptr:%v,ptr2的地址&ptr2:%v,ptr2的值:%v,ptr2指向的值:%vn",&pptr,pptr,*pptr,&ptr2,ptr2,*ptr2)//-------------函数形参指针--------plus(ptr2)fmt.Println(i)} 结果截图

更多Go相关内容:Go-Golang学习总结笔记

有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。

HTML div三边怎么加边框win7中qq截图快捷键是什么Idea怎么进行版本控制

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。