数组指针取消引用的地址不同

时间:2017-07-06 03:29:21

标签: arrays pointers go

在引擎盖下发生了什么(分配,指针),以便获取解除引用数组的地址并不会返回相同的地址?

package main

import (
    "fmt"
)

func main() {
    in := [...]int{1, 2, 3, 4, 5}
    orig := *&in
    if &in != &orig {
        fmt.Printf("&in = %p, &orig = %p\n", &in, &orig)
    }

    a := 1
    b := *&a
    if &a != &b {
        fmt.Printf("&a = %p, &b = %p\n", &a, &b)
    }

}

直播示例here

我是Go的新手,我发现这令人惊讶;我本来期望同一个地址。我怀疑发生了一个新的阵列(副本)正在分配并分配给origb

0 个答案:

没有答案