C语言中的数据类型分为:基本类型,枚举类型,void类型,派生类型;
所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据存储方式。不同类型分不同的长度和存储方式。
- 基本类型
整数类型类型就是用来存放整数数值的,比如12,536等;
整数类型
类型 |
储存大小 |
值范围 |
char |
1字节 |
-128 到 127 或 0 到 255 |
unsigned char |
1 字节 |
0 到 255 (2^8 - 1) |
signed char |
1字节 |
-128 即-(2^7) 到 127 (2^7-1) |
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 |
整型的使用细节:
1.各种类型的储存大小跟操作系统有关,系统位数和编译器有关,目前通用的是64位操作系统为主。
2.在实际工作中, c程序通常运行在linux/unix 操作系统下.大众:使用windows10(64位)
3.C语言的整型类型, 分为有符号 signed 和无符号 unsigned 两种, 默认是 signed
4.C程序中整型常声明为int型, 除非不足以表示大数, 才使用long long
Bit(位):计算机中的最小存储单位,byte(字节):计算机中基本存储单元
1.1byte = 8bit [二进制再详细说, 简单举例一个 short 3 和 int 3 ]
2.short 3 ,在内存中占有 2字节
3 .int 3在内存中占有 4个字节
浮点类型
c语言中浮点型类型可以表示一个小数,比如123.4 7.8,0.12等等
类型 |
储存大小 |
值范围 |
精度 |
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关键字来输出类型所占字节长度:
printf("sizeof(int):%d",sizeof(int));
字符类型
基本介绍
字符类型可以表示单个字符,字符类型是char, char是1个字节(可以存字母或者数字),多个字符称为字符串, 在C语言中 使用 char数组 表示,数组不是基本数据类型,而是构造类型。
字符类型使用细节:
- 字符常量是用单引号('')括起来的单个字符。 例如: char c1 ='a'; char c3 = '9';
- C中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如: char c3 = ‘\n’; // '\n'表示换行符
- 在C中, char的本质是一个整数,在输出时,是ASCII码对应的字符。
- 可以直接给char赋一个整数,然后输出时,会按照对应的ASCII 字符输出 [97]
- char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码.
枚举(enum)类型:
枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。
一般用来列举有限的数据取值。比如星期、月份或者有限特殊类型等等。
枚举语法定义格式为:
enum 枚举名 {枚举元素1,枚举元素2,……};
枚举的特点:
1、枚举元素的类型为整型(int)
2、第一个元素默认值为0,后面元素依次累加。
3、可以指定任意位置元素的值,其后的值在他的基础上进行累加
void类型(空类型)
void类型(空类型)有以下三种情况:
函数返回为空。 例如: void func(int i);
函数参数为空。 例如: int returnValue(); 或者 int returnValue(void);
指针指向为空。 例如:void *p; 定义一个空类型的p指针变量。
派生类型
派生类型包括:指针类型、数组类型、结构类型、共用体类型和函数类型。
举例如下:
int *p; //定义一个指向整型的指针变量。 指针类型
double arr[5]; //定义一个长度为5的浮点型数组。 数组类型
struct Student //定义一个结构类型,里面包含两个整型变量。
{
int sex;
int age;
}
//union类型
//函数类型即我们定义的函数