sizeof运算符(c)

sizeof 运算符产生大量存储,在字节,需要存储该操作数类型的对象。 此运算符使您可以避免指定设备相关的数据范围在程序。

sizeof unary-expression
sizeof ( type-name )

备注

该操作数是任何一种 二元表达式的标识符,或者转换表达式 (即类型括号内包含的说明符)。 该 一元表达式 不能表示位域对象、一个不完整类型或操作指示符。 结果为无符号整数常数。 标准头 STDDEF.H 定义此类型转换为 size_t

在应用 sizeof 运算符应用于数组标识符时,结果是整个数组的大小而不是数组标识符表示的指针的大小。

在应用 sizeof 运算符出现在结构或联合类型名称,或者在结构或联合类型时标识符,则结果是字节数在结构或联合的,包括内部和尾随填充。 此大小可能包括用于的内部和尾随填充对齐结构或联合的成员在内存边界。 因此,结果可能不对应添加计算的大小单个成员的存储要求。

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

buffer = calloc(100, sizeof (int) );

此示例使用 sizeof 运算符通过 int的大小,在计算机之间会有所不同,作为参数传递给名为 calloc的运行时功能。 函数返回的值在 buffer存储。

static char *strings[] ={
          "this is string one",
          "this is string two",
          "this is string three",
         };
const int string_no = ( sizeof strings ) / ( sizeof strings[0] ); 

在此示例中, strings 是数组的指针。 char。 指针数是元素数。数组的,但是,未指定。 将鼠标指针放在数使用 sizeof 运算符计算元素数。数组的非常容易。 const 整数值 string_no 初始化为该数字。 由于它是 const 值,就不能修改 string_no 。

请参见

参考

C++运算符