1. 首页
  2. 主题
  3. Go问与答

请教下为啥下面的代码 返回两个false

fenglangjuxu · · 1328 次点击
```golang package main import "fmt" func double(x *int) { *x += *x x = nil } func main() { var a = 3 double(&a) fmt.Println(a, &a == nil) // 6 false fmt.Println("======================") p := &a double(p) fmt.Println(a, p == nil) //12 false } ```
简单来说就是double中的x=nil是不生效的。
#3
更多评论
为什么会不是false &a是a的地址,为什么会等于nil?
#1
double 内的x是一个*int类型,其本身也是一个值类型,当给予它 x=nil,在函数调用完毕后,x的值已释放,并不会变更局部变量的值。
#2

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中