c语言的数据类型
C语言是强类型的静态语言,因此熟悉其数据类型至关重要。
在标准C语言中,数据类型分以下四大类:
- 基本类型:整数类型和浮点类型
- 枚举类型:离散整数值的变量
- void 类型:空类型
- 派生类型:指针类型、数组类型、结构类型、共用体类型、函数类型
基本类型
整数类型
下表是标准整数类型的存储大小和值范围的细节:
类型 | 存储大小 | 值范围 |
---|---|---|
char | 1 字节 | -128 到 127 或 0 到 255 |
unsigned char | 1 字节 | 0 到 255 |
signed char | 1 字节 | -128 到 127 |
int | 2 或 4 字节 | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
unsigned int | 2 或 4 字节 | 0 到 65,535 或 0 到 4,294,967,295 |
short | 2 字节 | -32,768 到 32,767 |
unsigned short | 2 字节 | 0 到 65,535 |
long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 字节 | 0 到 4,294,967,295 |
存储大小不同编译器可能有所不同,具体大小可使用
sizeof()
函数来查看。
浮点类型
下表是标准浮点类型的存储大小、值范围和精度的细节:
类型 | 存储大小 | 值范围 | 精度 |
---|---|---|---|
float | 4 字节 | 1.2E-38 到 3.4E+38 | 6 位有效位 |
double | 8 字节 | 2.3E-308 到 1.7E+308 | 15 位有效位 |
long double | 16 字节 | 3.4E-4932 到 1.1E+4932 | 19 位有效位 |
不同编译器可能有所不同,具体大小可使用
sizeof()
函数来查看。
枚举类型
有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,这时会采用枚举类型。
enum typeName{ valueName1, valueName2, valueName3, ...... };
enum <类型名> {<枚举常量表>};
void类型
void 类型指定没有可用的值。常用于:
-
函数返回为空:
void Print(){ printf("Hello world!\n"); }
-
函数参数为空
void Print(void){ printf("Hello world!\n"); }
派生类型
指针类型
int *p;
其他的数据类型 *变量名;
用于存放地址。
数组类型
int s[10];
其他的数据类型 变量名[数量];
存放多个相同类型数据。
结构类型
struct Node{
int num;
char name[100];
struct *Node;
};
struct 结构体名{
其他数据类型
};
自己定义的数据类型集合。
共用体类型
union price{
int num1;
float num2;
};
union 共用体名{
其他数据类型
};
存放在同一地址的类型集合。
函数类型
int Print(char c){
int asc;
asc=c;
printf("%cASCII是%d",c,asc);
return asc;
}
基本数据类型或void 函数名(形参){
其他操作
}
自己定义函数。