下面这段代码输出什么?
var p *int
func foo() (*int, error) {
var i int = 5
return &i, nil
}
func bar() {
//use p
fmt.Println(*p)
}
func main() {
p, err := foo()
if err != nil {
fmt.Println(err)
return
}
bar()
fmt.Println(*p)
}
A. 5 5 B. runtime error
B
全局的 *p 是nil
p, err := foo() 这里是一个新的p 局部变量 与全局的p无关