关于Golang中的指针
指针是什么?
首先,在理解指针这个词之前,需要先了解内存。
n := 200
当变量n被定义时,用来暂时保存200的地方是内存。
内存存在多个,每个内存都有一个编号。
我们把这个号码称为地址。
我会实际确认一下地址。
在Go中,您可以通过在定义了的变量前加上&来检查内存。
func main() {
n := 200
fmt.Println(&n)
// -> 0xc000084000
换言之,即表示变量n的值200保存在地址0xc000084000中。
在了解了地址和内存之后,我们再来思考指针。
当检查指针时,总结如下。
-
- メモリのアドレス情報のこと
- アドレス情報を格納するための変数のこと
我們將更詳細地研究這兩個。
在Golang中,有指针类型和指针变量。
在中国人的母语中,以下是一种方式的释义:
指针类型通过在string或int等类型后面加*来定义。
在下面,n是一个指针变量,*int是指针类型。
func main() {
var pointer *int
n := 100
// 1.
pointer = &n
// 2.
fmt.Println("pointerの中身:", *pointer)
}
-
- 通过使用&n,将n的地址存储在pointer中。
- 要从pointer类型获取值,可以通过在前面加上*来显示值。
实际使用指针类型时
指针类型在进行传递引用时使用。
在Swift中,我们使用inout。
func main() {
a, b := 100, 100
checker(a, &b)
fmt.Println(a, &b)
// -> 100 101
}
//1
func checker(a int, b *int) {
a++
*b++
}
- 通过使用引用传递的方法,可以改变调用者的变量b的值。
总结 jié)
如果你从多种语言转向Golang,或者你是一个初学者,我认为你可能会对这个指针类型感到困惑。(我曾经也是这样)
因此,我认为通过实际动手写作会使理解更加深入!
我希望您阅读这篇文章时能够亲自动手操作电脑。