C++:sizeof 运算符

简介

根据类型的大小生成操作数的大小 char 。

语法

sizeof unary-expression
sizeof  ( type-name )

备注

运算符的结果 sizeof 为类型,它是 size_t 在包含文件中定义的整型类型 <stddef.h> 。 利用此运算符,你可以避免在程序中指定依赖于计算机的数据大小。

的操作数 sizeof 可以是下列其中一项:

类型名称。 若要将 sizeof 与类型名称一起使用,必须将名称括在括号中。

一个表达式。 与表达式一起使用时, sizeof 可以使用或不带括号来指定。 不计算表达式。

将 sizeof 运算符应用于类型的对象时,将 char 生成1。 将 sizeof 运算符应用于数组时,它将生成该数组中的总字节数,而不是由数组标识符表示的指针的大小。 若要获取由数组标识符表示的指针的大小,请将其作为参数传递给使用的函数 sizeof 。 例如:

示例

#include <iostream>
using namespace std;

size_t getPtrSize( char *ptr )
{
   return sizeof( ptr );
}

int main()
{
   char szHello[] = "Hello, world!";

   cout  << "The size of a char is: "
         << sizeof( char )
         << "\nThe length of " << szHello << " is: "
         << sizeof szHello
         << "\nThe size of the pointer is "
         << getPtrSize( szHello ) << endl;
}

示例输出

The size of a char is: 1
The length of Hello, world! is: 14
The size of the pointer is 4

将 sizeof 运算符应用于 class 、 struct 或 union 类型时,结果为该类型的对象中的字节数,加上为对齐 word 边界上的成员而添加的任何填充。 结果不一定对应于通过将各个成员的存储需求相加计算出的大小。 /Zp编译器选项和pack杂注影响成员的对齐边界。

sizeof 运算符永远不会产生0,即使对于空类也是如此。

sizeof 运算符不能与以下操作数一起使用:

函数。 但 (sizeof 可应用到指向函数的指针 )

位域。

未定义的类。

类型 void 。

动态分配的数组。

外部数组。

不完整类型。

带括号的不完整类型的名称。

将 sizeof 运算符应用于引用时,结果与应用于对象本身的结果相同 sizeof 。

如果未调整大小的数组是结构的最后一个元素,则 sizeof 运算符返回没有此数组的结构的大小。

sizeof 运算符通常用于计算数组中使用以下形式的表达式的元素数:

sizeof array / sizeof array[0]

该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处,本文章博客地址:https://blog.youkuaiyun.com/it_cplusplus/article/details/118836111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值