为什么:内存是在计算机中一片很大且连续的空间,而计算机并不会灵活的根据用户输入的内容来分配相应大小的空间,所以多了的话浪费资源,少了的话不够用,而且不同的数据不可能使用同一种方式存储(例如字符和整形以及浮点型的存储方式都有很大的区别),于是不同的数据类型就产生了。
有什么:C语言中常用的数据类型有7种
char //字符型:1字节 short //短整型:2字节 int //整型:4字节 long //长整型:4字节 long long //更长整型:8字节 float //单精度浮点型:4字节 double //双精度浮点型:8字节
sizeof(xxx);
最后一行展示的sizeof()是可以用来计算每种数据类型在自己计算机中到底占多少个字节的,因为上述所展示的只是常规的数据类型所占用的空间大小,然而所占位数和机器字长及编译器都有关系,以下是网络上找的数据(具体情况请具体验证)
以char, short, int, long为例: 16位编译器:(Turbo C/Turbo C++) sizeof(char) = 1 sizeof(short) = 2 sizeof(float) = 4 sizeof(double) = 8 sizeof(int) = 2 sizeof(long) = 4 sizeof(long double) = 16 sizeof(void *) = 4 32位编译器:(Visual Studio C++) sizeof(char) = 1 sizeof(short) = 2 sizeof(float) = 4 sizeof(double) = 8 sizeof(int) = 4 sizeof(long) = 4 sizeof(long long) = 8 sizeof(void *) = 4 (表示指针类型数据长度) 64位编译器: sizeof(char) = 1 sizeof(short) = 2 sizeof(float) = 4 sizeof(double) = 8 sizeof(int) = 4 sizeof(long) = 8 sizeof(long long) = 8 sizeof(void *) = 8
注:int型占4个字节,一个字节是8个bit,就是4 * 8 = 32 个二进制位,所能存储的数据大小(默认无符号)就是从0 ~ 2 ^ 32 - 1大概就是42亿,依次类推。
原文:https://www.cnblogs.com/zhm521/p/13878820.html