数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。
四大数据类型
在 C 语言中数据类型可分为四大数据类型,分别如下所示:
- 算术类型:包含整数类型、浮点类型
- 枚举类型:被用来定义在程序中只能赋予其一定的离散整数值的变量。
- void 类型:类型说明符 void 表明没有可用的值。
- 派生类型:包括指针类型、数组类型、结构类型、共用体类型和函数类型。
算数类型
整数类型
整数类型是指不包含小数点的数据,生活场景中的电影票数量、人的年龄等。
下表列出了关于标准整数类型的存储大小和值范围的细节:
类型 | 存储大小 | 值范围 |
---|---|---|
char | 1 byte | -128 到 127 或 0 到 255 |
unsigned char | 1 byte | 0 到 255 |
signed char | 1 byte | -128 到 127 |
int | 2 或 4 bytes | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
unsigned int | 2 或 4 bytes | 0 到 65,535 或 0 到 4,294,967,295 |
short | 2 bytes | -32,768 到 32,767 |
unsigned short | 2 bytes | 0 到 65,535 |
long | 4 bytes | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 bytes | 0 到 4,294,967,295 |
浮点类型
浮点类型是带小数的数据类型,生活场景中商品金额、物体重量等都为浮点类型。
类型 | 存储大小 | 值范围 | 精度 |
---|---|---|---|
float | 4 byte | 1.2E-38 到 3.4E+38 | 6 位小数 |
double | 8 byte | 2.3E-308 到 1.7E+308 | 15 位小数 |
long double | 10 byte | 3.4E-4932 到 1.1E+4932 | 19 位小数 |
实例
“村里有个姑娘叫小芳,年方十八,身高1米68,长得美丽又大方。”
#include <stdio.h>
int main(){
char name = "xiaofang";
int age = 18;
float height = 1.68;
printf("村里有个姑娘叫%c,年方%d,身高%f,长得美丽又大方。", name, age, height);
return 0;
}
基本类型之间的数据转换
常量
常量:指程序运行期间不会改变的变量,分为直接常量和符号常量
直接常量
#include <stdio.h>
int main()
{
printf("PI %d", 3.1415926); // 无需声明的量
return 0;
}
符号常量
#include <stdio.h>
#define PI 3.1415926
int main()
{
printf("PI %d", PI); // 使用之前先使用符号 #define 定义
return 0;
}
类型转换
自动转换
自动类型转换在编译阶段完成
#include <stdio.h>
int main()
{
char c = 'C';
int n = c;
float f = c;
double d = c;
printf("%d %f %lf", n, f, d); // 67 67.000000 67.000000
return 0;
}
强制转换
需要手动定义进行强制转换,形式为:(数据类型) (表达式)
#include <stdio.h>
#define PI 3.1415926
int main()
{
int intPI = (int)(PI);
printf("intPI 的整数部分是%d\n", intPI); // intPI 的整数部分是3
return 0;
}