请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么string的size是16,[]int32的size是24?

为什么string的size是16,[]int32的size是24?有各种slice或map类型的计算方法么?

正在回答 回答被采纳积分+3

1回答

提问者 FrankieLee 2023-12-14 23:21:45
type slice struct {
   array unsafe.Pointer
   len   int
   cap   int
}

如果说 []int32的size是24是因为len+cap+array = 8+8+8的话可以理解,但是string底层是byte slice,为什么是16而不是24呢?

0 回复 有任何疑惑可以回复我~
  • Moody #1
    看下4-2节,string实际是个结构体,更底层的数组是通过指针指向的,并不在这16个字节里
    回复 有任何疑惑可以回复我~ 2023-12-16 21:36:41
  • 提问者 FrankieLee 回复 Moody #2
    谢谢答疑
    回复 有任何疑惑可以回复我~ 2023-12-17 12:07:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信