关于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)
}

    1. 通过使用&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,或者你是一个初学者,我认为你可能会对这个指针类型感到困惑。(我曾经也是这样)

因此,我认为通过实际动手写作会使理解更加深入!

我希望您阅读这篇文章时能够亲自动手操作电脑。

广告
将在 10 秒后关闭
bannerAds