在指针部分,发现一点值得注意的地方。
可以用&取变量地址,包括可以进一步取指针的地址。
但是 不可以用&(&i)
package main
import "fmt"
func main() {
var i int
var ip *int
var ipp **int
i = 2
ip = &i
ipp = &ip //若在此处用&(&i)将会报错
ippp := &(ipp)
*ip = 3
**ipp = 4
***ippp = 5
fmt.Println(i)
}
如上代码示例,可以连续用*取地址带便的变量值,但是不可以连续用&
如果像注释里一样,使用&(&i),将会输出错误:
# command-line-arguments
./p.go:11: cannot take the address of &i
这是在看到《Go语言云动力》里看指针一节,联想到的,不知道官方文档里怎么介绍这一块。
The Original Link: http://baham.github.io/11_29_goyu-yan-zhi-zhen.html
If you want to reprint it, please do under the CC BY-NC-SA 4.0