账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    golang map类型变量保存的是实际值所在的地址还是什么
    19
    0

    初始化了一个map型的变量m,使用printf(%p)的格式分别对m和&m进行输出,分别得到两个地址。
    &m显而易见是m变量的地址,令我困惑的是m也可以输出一个地址,但有人说m保存的并非指针,那为什么m却可以输出地址?map类型的变量访问的机制是什么样的?谢谢

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • ㎜╰霸㈡ 普通会员 1楼

      在 Go 语言中,map 类型的变量实际上是内存地址的映射。在 map 中,每个键值对的值都是一个整数,这个整数表示了该键值对在内存中的位置。

      因此,当你在 map 中插入、删除或查找键值对时,它并不会改变实际值所在的内存地址。因为 map 的值是由键值对的整数表示的,而不是实际的值。在 Golang 中,当你创建 map 时,系统会自动为 map 生成一个哈希表,这个哈希表会存储键值对的整数表示,而不是实际的值。

      所以,你不需要担心 map 变量保存的是实际值所在的地址,而是映射了实际值在内存中的位置。

    更多回答
    扫一扫访问手机版