C++基本概念——你所不知道的sizeof运算符

1.什么是sizeof?

    sizeof返回一条表达式或者一个类型名字所占的字节数sizeof运算满足右结合律,其所得的值是一个size_t类型的的常量表达式。运算符的运算对象有两种形式:

sizeof (type)
sizeof expr

    在第二种形式中,sizeof返回的是表达式结果类型的大小。与众不同的一点是,sizeof实际上并不计算表达式的值。

2.如何确定sizeof 返回值的大小?

    sizeof运算符的运算结果部分依赖于其作用的类型:

  • char或者类型为char的表达式执行sizeof 运算得到的结果为1。
  • 对引用类型执行sizeof 得到的是引用对象的大小。
  • 对指针执行sizeof 运算得到的是指针本身所占的空间大小,通常为4。
  • 对解引用执行sizeof 运算得到的是指针指向的对象所占的空间大小,指针不需要有效
  • 对数组得到的是整个数组空间的大小
  • string 或者vector 对象执行sizeof 运算只返回该类型固定部分的大小,不会计算对象中的元素占了多少存储空间。

.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章