爬行的蜗牛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: golang Linux PHP
查看: 393|回复: 0

GoLang中&与*的区别以及使用

[复制链接]

94

主题

36

回帖

849

积分

管理员

积分
849
发表于 2024-9-18 21:38:11 | 显示全部楼层 |阅读模式
&符号的意思是对变量取地址
*符号的意思是对指针取值

func main() {
        var a *int // 存储的是int的指针,目前为空
        var b int = 4 // 存储的是int的值
        a = &b // a 指向 b 的地址
        a = b // a 无法等于 b,会报错,a是指针,b是值,存储的类型不同
        fmt.Println(a) // a:0xc00000a090(返回了地址)
        fmt.Println(*a) // *a:4(返回了值)
        fmt.Println(*&a) // *抵消了&,返回了0xc00000a090本身
        *a = 5 // 改变 a 的地址的值
        fmt.Println(b) // b:5,改变后 b 同样受到改变,因为 a 的地址是指向 b 的
}


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表