使用规则
形式:sizeof(类型)或 sizeof 表达式
#include <stdio.h>
int main ()
{
int a = 10;
printf ("%zd/n",sizeof (int)); //4
printf ("%zd/n",sizeof (a)); //4
printf ("%zd/n",sizeof a); //4
printf ("%zd/n",sizeof (3.14)); //8,因为3.14被编译器识别为double类型
return 0;
}
sizeof 返回某种数据类型或某个值占⽤的字节数量,它的参数可以是数据类型的关键字,也可以是
变量名或某个具体的值。sizeof 可以计算内置的类型、数组、自定义类型的大小。
返回类型
sizeof 运算符的返回值,C 语言只规定是无符号整数,并没有规定具体的类型,而是留给系统决定。为解决这个问题,C 语言创造了⼀个类型别名 size_t ,用来统一表示sizeof 的返回值类型。该别名定义在 stddef.h 头⽂件(引⼊ stdio.h 时会⾃动引⼊),对应当前系统的 sizeof的返回值类型,可能是 unsigned int ,也可能是 unsigned long 。
C 语⾔还提供了⼀个常量 SIZE_MAX ,表⽰ size_t 可以表⽰的最⼤整数。
所以, size_t 能够表⽰的整数范围为 [0, SIZE_MAX] 。printf() 有专⻔的占位符 %zd 或 %zu ,⽤来处理 size_t 类型的值。