不同的类型数据占用的内存大小不同
说明: C标准没有具体规定各种类型数据所占用存储单元的长度, 只要求
sizeof(short)≤sizeof(int)≤sizeof(long)≤sizeof(\longlong), 由各编译系统自行决定的
sizeof是计算类型或者变量所占空间大小的操作符
单位:字节
用sizeof运算符计算变量占内存空间的大小的好处
1.增加程序的可移植性
2.编译时执行的运算符,不会导致额外的运行时间开销
计算机中的单位:
bit-比特位
计算机中识别二进制:0和1
存储1的空间则是一个比特位
byte-字节
1字节=8bit
1kb=1024byte
1mb=1024kb
1gb=1024mb
1tb=1024gb
1pb=1024tb
sizeof的使用:
int main() { printf("%zd\n",sizeof(char)); printf("%zd\n",sizeof(int)); printf("%zd\n",sizeof(float)); return 0; }
sizeof计算的结果的类型是size_t,size_t是一种无符号的整数,这种整数值在打印的时候使用%zd
(int--%d
char--%c
字符串--%s)
sizeof的操作数如果不是类型,而是表达式的时候,可以省略掉后面的括号
如:
int main() { short s=2; int b=10; printf("%zd\n",sizeof(s=b+1)); printf("s=%d\n",s); return 0; }
sizeof中表达式不计算
int main() { printf("%zd\n",sizeof(char)); printf("%zd\n",sizeof(int)); printf("%zd\n",sizeof(float)); return 0; }
sizeof在代码进行编译的时候,就根据表达式的类型确定了,类型的常用,而表达式的执行却要在程序运行期间才能执行,在编译期间已经将sizeof处理掉了,所以在运行期间就不会执行表达式了