C语言基本数据类型
在C语言中数据类型可分为4类,分别是基本数据类型、构造类型、指针类型和空类型。
基本数据类型
在C语言中基本数据类型有可分为数值型和字符型(从存储角度看,char是整数类型,char类型在内存中存储的是整型,即用特定的整数来表示特定的字符),数值型又可分为整型和浮点型用于表示整数和浮点数。
整型
-
int : 整型,用于存储整数,通常占
4
个字节即32bit
(通常一个int
占一个机器字长) -
short : 短整型,通常占
2
字节,C标准规定short
占有的存储空间不能多于int
即short <= int
-
long : 长整型,通常占
4
字节,C标准规定long
占有的存储空间不能小于int
即int <= long
而C语言除了提供以上三种整型外,还提供了long long
长长整型,而我们可以根据情况使用不同的数据类型。
浮点型
-
float : 单精度浮点型,可用于存储小数,占4字节
-
double : 双精度浮点型,占8字节,相对于
float
类型可以表示的数据范围更广也更加精确
由于浮点型的在内存中的存储关系,浮点型无法表示精确的表示有效位数以外的值,在表示这些值时可能会有误差
字符型(char)
char
类型在内存中占2字节。字符型在内存中存储的实际上是整型而非字符,计算机内部是使用编码来处理字符,用特定的整数来表示特定的字符。最常见的就是ASCII
编码。
关于数据类型大小
#include<stdio.h>
int main()
{
printf("整型\n");
printf("int占用%d\n",sizeof(int));
printf("short占用%d\n",sizeof(short));
printf("long占用%d\n",sizeof(long));
printf("long long占用%d\n",sizeof(long long));
printf("浮点型\n");
printf("float占用%d\n",sizeof(float));
printf("double占用%d\n",sizeof(double));
printf("字符\n");
printf("char占用%d\n",sizeof(char));
return 0;
}
附上环境和运行结果
总结
关于数据类型,对于不同的数据选择不同的数据类型,可以提高空间利用率,避免溢出等问题。