欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > 【go从零单排】go语言中的指针

【go从零单排】go语言中的指针

2026/2/3 9:17:43 来源:https://blog.csdn.net/qq_42476938/article/details/143594278  浏览:    关键词:【go从零单排】go语言中的指针

挪威特罗姆瑟夜景

Don’t worry , just coding!
内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。

概念

在Go语言中,指针是一个存储了变量内存地址的特殊类型。指针变量指向内存地址,而不是直接指向变量的值。
使用 & 符号来获取变量的地址,使用 * 符号来声明指针变量和访问指针指向的值

代码

package mainimport "fmt"// zeroval函数,输入一个int类型,在内部赋值ival=0
func zeroval(ival int) {ival = 0
}// zeroptr函数,输入一个int指针类型,内部通过*指针把指针指向的变量的值赋值为0
func zeroptr(iptr *int) {*iptr = 0
}func main() {i := 1fmt.Println("initial:", i)//调用zeroval函数zeroval(i)fmt.Println("zeroval:", i)//传递i的内存地址&izeroptr(&i)fmt.Println("zeroptr:", i)//打印指针的内存地址 &ifmt.Println("pointer:", &i)
}

输出:

go run post.go
initial: 1
zeroval: 1
zeroptr: 0
pointer: 0xc000090020

理解

获取变量地址:& 操作符用于获取变量的地址。

var a int = 42
var ptr *int
ptr = &a

声明指针变量: 符号用于声明指针变量。

var ptr *int

访问指针指向的值: 符号用于访问指针指向的值。

var a int = 42
var ptr *int
ptr = &a
fmt.Println(*ptr) // 输出为 42

Tips小知识点

指针在Go语言中常用范围:

  • 传递函数参数:通过指针可以在函数间传递大量数据,避免复制数据的开销。
  • 动态分配内存:使用指针可以动态分配内存,创建灵活的数据结构
  • 与数据结构一起使用:指针在数据结构中经常用于引用其他对象。
  • 使用指针时需要注意避免空指针引用,先做判断

掌握知识的最好方式就是教会别人,每篇文章都讲清楚一个知识点,欢迎留言我一起讨论。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com