文章目录
数据类型介绍
C语言类型分为两类:
- 内置类型:C语言本身就有的类型。
- 自定义类型(构造类型)。
内置数据类型
内置数据类型又可以划分为整型和浮点型,char类型底层存储的ASCII码值,因此也被归类在整型中。
关键字 | 类型 | 内存空间 |
---|---|---|
char |
字符数据类型 | 1B |
short |
短整型 | 2B |
int |
整形 | 4B |
long |
长整型 | 4B |
long long |
更长的整形 | 8B |
float |
单精度浮点数 | 4B |
double |
双精度浮点数 | 8B |
C99之后,C语言的内置数据类型新增了布尔型、复数型、虚数型,这里不做讨论。
整形
整型的取值范围定义在头文件**limits.h
**中。
Datatype |
Size |
Unsigned |
Signed |
---|---|---|---|
char |
1Byte |
0 ~2 8-1 |
-2 7~-2 7-1 |
short[int] |
2Byte |
0~2 16-1 |
-2 15~2 15-1 |
int |
4Byte |
0~2 32-1 |
-2 31~2 31-1 |
long[int] |
4Byte |
0~2 32-1 |
-2 31~2 31-1 |
long long[int] |
8Byte |
0~2 64-1 |
-2 63~2 63-1 |
注意点:
char
默认类型取决于编译器,大多数编译器下char
默认都是signed
。- 其他整形类型默认都是**
signed
**。
浮点型
浮点型的取值范围定义在头文件**float.h
**中
Datatype |
Size |
指数位 | 尾数位 | 取值范围 | 有效数字 |
---|---|---|---|---|---|
float |
4Byte |
8 |
23 |
-2 128~ 2 128 ≈ -3.4E38 ~ +3.4E38 |
7 或 8位 |
double |
8Byte |
11 |
52 |
-2 1024~ 2 1024 ≈ -1.797E308 ~ +1.797E308 |
15 或 16位 |
自定义类型(构造类型)
- 数组类型:去掉数组名剩下的就是数组的类型,如:
int [10]
,可以用sizeof(int [10]
) 计算数组大小;
- 结构体类型 :
struct
- 枚举类型::
enum
- 联合类型:
union
指针类型
指针类型的占用空间在相同平台下大小相同,作用是存放地址。
例如:int *pi
char *pc
float *pf
空类型
void
表示空类型(无类型)
通常应用于函数的返回类型、函数的参数、指针类型。
void test(void) // 无返回值, 无参数
{
// ...
}
void* test() // 返回void* 类型指针,无参数()中不写默认void