在日常生活中,我们常见到的数字有整数和小数之分,而在计算机中为了准确表示出这些数据,需要为这些数据设置数据类型。所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。不同类型分配不同的长度和存储形式。
一.基本类型分类:
下面我将介绍C语言允许使用的类型,如下图表示:
二.各种类型的大小
在我们了解了常见的数据类型后我们也应该知道每个类型到底有多大的空间,以便我们在定义变量时为其设置合适的空间。这里我们可以借用关键字sizeof来确认每个类型的大小,下面就让我们来直观的感受下每个类型的具体的大小。
#include<stdio.h>
int main()
{
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
return 0;
}
运行结果如下:
由此可知在X64的操作系统中short类型占2个字节,int型占4个字节,long类型占4个字节,long long占8个字节,char类型占1个字节,float类型占4个字节,double类型占8个字节。
三.注意点
注:他们的单位都为字节,计算机中最小的单位为bite(比特)位,即一个字节有8个bite(比特)位。
有些人可能会疑惑为什么字符型char类型也要归为整形类型,因为计算机内部在存储这些字符时是实际上是以字符的ASCII码进行存储,并且每个字符有独一无二的码值与之对应。
在这里我也解释一下为什么long类型为4个字节,而int类型也为4个字节,因为标准规定只要sizeof(long)≥sizeof(int)的长度即可。
四.取值范围的差异:
不同类型的类型的取值范围也有不同,下面一张表将显示其具体差异:
整形数据:
浮点型数据: