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]