sizeof运算符

生成其操作数的范围有关类型 char的大小。

sizeof unary-expression
sizeof ( type-name )

备注

sizeof 运算符的结果为类型 size_t,在包含文件定义的整型 STDDEF.H。 此运算符使您可以避免指定设备相关的数据范围在程序。

为 sizeof 的操作数可为下列值之一:

  • 类型名称。 若要使用类型名称的 sizeof ,必须括在括号名称。

  • 一个表达式。 当使用表达式, sizeof 可以指定带有或不带括号。 该表达式不会计算。

当 sizeof 运算符应用于类型 char时对象,它提供 1。 当 sizeof 运算符应用于数组时,它提供总字节数。该数组,数组标识符表示的不是该范围的指针。 若要获取数组标识符表示的指针的大小,请将它作为参数传递给使用 sizeof的功能。 例如:

示例

// expre_sizeof_Operator.cpp
// compile with: /EHsc
#include <iostream>

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

using namespace std;
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 运算符应用于 、 struct或 联合 类型时,结果是字节数该类型的对象,以及添加的所有填充对齐字边界的成员。 该结果不必对应于将计算的大小单个成员的存储要求。 /Zp 编译器选项和 说明影响成员的对齐边界。

sizeof 运算符决不为 0,即使空的类的。

sizeof 运算符不能使用具有以下操作数:

  • 函数。 (但是, sizeof 可应用于函数的指针。)

  • 位域。

  • 未定义的类。

  • 类型 void。

  • 动态分配的数组。

  • 外部数组。

  • 不完整类型。

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

当 sizeof 运算符应用于引用时,结果是相同的,就象 sizeof 应用于对象。

如果一个未确定大小的数组是结构的最后一个元素, sizeof 运算符返回结构的大小,而无需数组。

使用窗体的表达式, sizeof 运算符通常用于计算数组中元素的数目:

sizeof array / sizeof array[0]

请参见

参考

使用一元运算符的表达式

C++关键字