1. 数据类型介绍
(1). 基本的内置类型(C语言自带类型):
char -- 字符数据类型 -- 1字节
short -- 短整型 -- 2字节
int -- 整型 -- 4字节
long -- 长整型 -- 4字节 或 8字节
sizeof(long) >= sizeof(int)
long long -- 更长的整型 -- 8字节
float -- 单精度浮点数 -- 4字节
double -- 双精度浮点数 -- 8字节
类型的意义:
1. 使用这个类型开辟内存空间的大小(大小决定了使用范围)
2. C语言规定了:sizeof(long) >= sizeof(int),所以long的大小可以是4字节或8字节
3. 把整型分为短整型、整型和长整型的原因:有些整型数据可能比较小,使用short就够了,如:年龄。short的范围:-32768 ~ 32767。
4. 对于整型类型,还分为 有符号(signed) 和 无符号(unsigned)
(2). 类型的基本归类:
整型类型:(只有整型分有符号和无符号)
char:
unsigned char
signed char
(字符存储时,存储的是ASCII码值,是整型,所以归类时把char放在整型类型中)
(直接写成 char 是 signed char 还是 unsigned char 是不确定的,取决于编译器) short:
unsigned short [int]
signed short [int] == short [int]
( [int]通常会省略掉 )int:
unsigned int
signed int == int
long
unsigned long [int]
signed long [int] == long [int]
( [int]通常会省略掉 )
long long
unsigned long long [int]
signed long long [int] == long long [int]
( [int]通常会省略掉 )
signed:二进制位的最高位是 符号位,其它位都是 数值位
unsigned:二进制位的最高位也是 数值位,即所有位都是 数值位
例如(其它整型类型以此类推):
(signed char 范围是:-128~127,补码:10000000无法转换为原码,被直接当成-128)
(unsigned char 范围是:0~255,8位全是数值位,无负数)
浮点数类型:
float
double
long double
构造类型(自定义类型):
数组类型
(数组的元素个数 和 数组的类型 发生变化时,数组类型就不一样了:)
int arr1[10]; 类型是 int [10]
int arr2[5]; 类型是 int [5]
char arr3[5]; 类型是 char [5]
(这是三个不同的数组类型)
结构体类型 struct
枚举类型 enum
联合类型 union
指针类型:
int* pi;
char* pc;
float* pf;
void* pv;
空类型:
void 表示 空类型(无类型):通常应用于函数的返回类型、函数的参数、指针类型。