4.9 sizeof运算符

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

sizeof运算符满足 右结合律

所得值是一个size_t类型的常量表达式

运算符的运算对象有两种形式

 sizeof (type)

 sizeof expr

第二种形式中sizeof返回的是表达式结果类型的大小,sizeof并不实际运算其运算对象的值

Sales_data data, *p;

 sizeof(Sales_data);    //储存Sales_data类型对象所占的空间大小

 sizeof data;                  //data类型的大小,即sizeof(Sales_data)

 sizeof p;                     // 指针所占的空间大小

 sizeof *p;                 // p所指类型的空间大小,即 sizeof(Sales_data)

 sizeof data.revenue    // Sales_data 的 revenue成员对应类型的大小

 sizeof Sales_data::revenue  //另一种获取revenue大小的方式

Sizeof 右结合律表达式从右向左进行

 sizeof 中引用一个无效指针仍然安全,因为指针实际上没有被引用。

C++11允许我们使用作用域运算符来获取类成员的大小,通常情况下只有通过类的对象访问到类的成员。

但sizeof不需要提供具体的对象,因为想知道类成员大小无需真的获取该成员

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

  • 对char或者类型为char的表达式执行 sizeof 运行,结果得1
  • 对引用类型执行sizeof运算得到被引用对象所占空间的大小
  • 对指针执行sizeof运算得到指针本身所占空间的大小
  • 对解引用指针执行sizeof运算得到指针指向的对象所占空间的大小,指针不需有效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值