zoukankan      html  css  js  c++  java
  • sizeof 运算符

    一、介绍

    sizeof运算符返回一条表达式或一个类型名字所占的字节数。

    sizeof运算符满足右结合律,其所得的值是一个size_t类型的常量表达式。

    sizeof的运算对象中解引用一个无效指针仍然是一种安全的行为,因为指针实际上并没有被真正使用。

    sizeof不需要真的解引用指针也能知道它所指对象的类型。

    二、使用

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

    • char或者类型为char的表达式执行sizeof运算,结果为1
    • 对引用类型执行sizeof运算得到被引用对象所占空间的大小
    • 对指针执行sizeof运算得到指针本身所占空间的大小
    • 对解引用执行sizeof运算得到指针指向的对象所占空间的大小,指针不需要有效。
    • 对数组执行sizeof运算得到整个数组所占空间的大小,等价于对数组中所有的元素各执行一次sizeof运算并将所得结果求和。注意,sizeof运算不会把数组转换成指针来处理。
    • string对象或vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中的元素占用了多少空间。

    因为执行sizeof运算能得到整个数组的大小,所以可以用数组的大小除以单个元素的大小得到数组中元素的个数:

    // sizeof(ia) / sizeof(*ia) 返回 ia 的元素数量
    constexpr size_t sz = sizeof(ia) / sizeof(*ia);
    int arr2[sz];  // 正确:sizeof 返回一个常量表达式
    

    因为sizeof的值是一个常量表达式,所以我们可以用sizeof的结果声明数组的维度。

  • 相关阅读:
    第07组 Alpha冲刺(1/6)
    第07组 团队Git现场编程实战
    团队项目-需求分析报告
    团队项目-选题报告
    第07组 Alpha冲刺(4/6)
    第07组 Alpha冲刺(3/6)
    第07组 Alpha冲刺(2/6)
    第07组 Alpha冲刺(1/6)
    第07组 团队Git现场编程实战
    第07组 团队项目-需求分析报告
  • 原文地址:https://www.cnblogs.com/huaibin/p/15319004.html
Copyright © 2011-2022 走看看