在 C 语言中, 数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。
基本数据类型
C语言有4种基本的数据类型,分别是字符型(char),整型(int),单精度浮点型(float)和双精度浮点型(double)。
以下为各个数据类型的存储大小和取值范围:
(注意,各种类型的存储大小与系统位数有关,但目前通用的以64位系统为主。)
1.字符型char
字符型在其本质上就是整型数据,我们在C语言中使用char表示一个字符型,他占用一个字符的存储空间,字符型在存储时其内部存储的依旧是二进制数据,当我们读出时将会得到一个整型数据,而我们输出时会得到一个字符是因为我们人为的定义了一个对照表ASCLL表,这个表规定字符a的数值就是97,所以当我们遇到97时我们有两种读出方式,第一种以整数形式读出就是97,另一种就是以字符型读出,使用%c指定读出形式,则对照表则为a。
(1)意义:存储字符型数据。
(2)表现形式:char
(3)空间大小:1字节=8bit
(4)存储方式:环形结构存储
#include<stdio.h>
int main()
{
char a=65;//大写字母A在ASCLL表中为65;
char b='A';//定义一个变量b为字符'A';
printf("a的空间大小:%ld\n",sizeof(a));//利用关键字sizeof求出字符型变量a的空间大小;
printf("变量a=%c\n",a);//%c表示输出一个字符型数据 ,将ASCLL码65转为大写字母'A';
printf("变量b=%c",b);//输出字符b;
return 0;
}
2.整型int
int型是整型常量,即整数,不包含小数点和指数。如22是整数,22.0和2.2E1不是整数。
(1)意义:存储整型数据。
(2)表现形式:int
(3)空间大小:4字节
a.有符号signed -> 省略不写,默认是有符号的。
取值范围:-2^31 ----2^31-1
b.无符号unsigned int
取值范围:0----2^32-1
c.长整型long int
空间大小:8字节
d.短整型:short int
空间大小:2字节
3.单精度浮点型float
float是C语言的基本数据类型中的一种,表示单精度浮点数。C语言规定单精度浮点型在内存占用4个字节,精度为7位,取值范围为:3.410^-38 ~3.410^38 或者 -(3.410^-38 ~3.410^38)。
float在内存中的存储遵循IEEE 754标准。在C/C++中,float类型占4个字节即32位 , 这32位分成了3部分:符号位:转化成二进制后,第31位。 0代表正数,1代表负数
(1)意义:存储浮点型数据。
(2)表现形式:float
(3)空间大小:4字节
注意:输出数据时要用%f来输出数据
4.双精度浮点型double
C标准规定,double类型必须至少能表示10位有效数字,且取值范围至少是10-37~10+37。
(1)意义:存储双精度浮点型数据。
(2)表现形式:double
(3)空间大小:8字节
基本数据类型转换
1.自动数据类型转换
在进行运算时,不同类型的数据要转换成同一类型。自动转换的规则如图
转换方法为:
(1)float型数据自动转换成double型;
(2)char与short型数据自动转换成int型;
(3)int型与double型数据运算,直接将int型转换成double型
(4)int型与unsigned型数据、直接将int型转换成unsigned型;
(5)int型与long型数据,直接将int型转换成long型。
2.强制数据类型转换
强制类型转换的一般形式为:(类型名)(表达式)
输出格式
各类型数据的输出格式