各位少年:sizeof的使用
前言各种数据类型的长度
每一种数据类型都有自己的长度,使用不同的数据类型,能够创建长度不同的变量,变量长度的不同,存储的数据范围就有所差异。
sizeof操作符
sizeof是一个关键字,也是操作符,专门是用来计算sizeof操作符数的类型长度的,单位是字节
sizeof操作符的操作数可以是类型,也可是变量或者表达式
sizeof(类型)
sizeof 表达式
sizeof的操作符数如果不是类型,是表达式的时候,可以省略掉后面的括号。
sizeof后面的表达式不是真实参与运算的,根据表达式的类型来得出大小。
sizeof的计算结果是 size_t类型的。
sizeof的运算符的返回值,C语言只规定是无符号的整数,并没有规定具体的类型,而是留给系统自己去决定,sizeof到底返回什么类型。不同系统中,返回值的类型有可能是unsigned int,也有可能是unsigned
long,甚至是unsigned long long,对应的printf()占位符分别是%u,%lu和%llu。这样不利于程序的可移植性。
int main() { printf("%d\n",sizeof(char)); printf("%d\n",sizeof(_Boot)); printf("%d\n",sizeof(short); printf("%d\n",sizeof(int); printf("%d\n",sizeof(long); printf("%d\n",sizeof(long long); printf("%d\n",sizeof(float); printf("%d\n",sizeof(double); printf("%d\n",sizeof(long double); return 0; }
sizeof是一个关键字,也是操作符,专门是用来计算sizeof的操作符数的类型长度的,单位是字节。
sizeof操作符的操作数可以是类型,也可是变量或者表达式。注意sizeof计算结果都是字节
下面是内存的换算
1Byte=8bit
1KB=1024byte
1MB=1024KB
1GB=1024MB
1TB=1024GB
哪好我们来分享一道面试题
#include<stdio.h> int main() { short s=2;S占两个字节 int b=10; printf("%zd\n"sizeof(s=b+1)); printf("s=%d\n",s); return 0; }
sizeof中的表达式不计算(这是语法,没有为什么)好今天分享到这里。