基本概念:sizeof是C语言的一种单目操作符,并不是函数;以字节的形式给出了操作数的大小;sizeof操作符的结果类型为size_t,在头文件<stddef.h>中typedef为unsigned int类型。
基本应用:如果sizeof用于数据类型的形式,则必须将数据类型用括号括起来,如:sizeof(int);用于变量时可以不用括号,如:sizeof(var_name)或sizeof var_name;sizeof操作符不能用于函数类型、不完全类型、位字段,不完全类型是指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型。
特殊应用:在支持动态数组的编译器中,可以实现计算动态数组的字节大小。如下面的函数:
- void f(int len)
- {
- char array[len];
- array[0]='a';
- printf("sizeof array=%d\n",sizeof(len));
- }