这是执行代码
package main
func main() {
var ax [2]int
ax[0] = 22
ax[1] = 99
bx := ax
cx := &ax
fmt.Println(ax)
fmt.Println(bx)
fmt.Println(cx)
fmt.Printf("%p\n", cx)
}
当我执行它时,它给出以下输出
PS C:\personal\gospace> ./bin/test
[22 99]
[22 99]
&[22 99]
0xc0420381d0
cx := &ax
正确地将 cx 解释为指针。但是当我打印 cx 时它会打印&[22 99]
当我打印时&ax[0]
or %p
cx 的格式化程序它正确地打印地址。为什么会出现这种行为?
默认打印动词fmt.Println
用途是%v
。打印时区分 https://golang.org/src/fmt/print.go?s=7388:7437#L841值与指针值,这就是为什么你会看到&
在...前面cx
.
fmt.Println(cx)
接下来就具体告诉你fmt.Printf
使用动词%p
,参考printing https://golang.org/pkg/fmt/#hdr-Printing部分并打印base 16 notation, with leading 0x
.
fmt.Printf("%p\n", cx)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)