数据类型分类
- 基本类型:它们是算术类型,包括两种类型:整数类型和浮点类型。
- 枚举类型:也是算术类型
- void类型:类型说明符 void 表明没有可用的值
- 派生类型:包括:指针类型、数组类型、结构类型、共用体类型和函数类型
数组类型和结构类型统称为聚合类型。
函数的类型指的是函数返回值的类型。
void类型
用法有三
- 函数返回为空
- 函数参数为空
- 指针指向 void
类型为 void 的指针代表对象的地址,而不是类型。例如,内存分配函数 **void malloc( size_t size );** 返回指向 void 的指针,可以转换为任何数据类型
数据类型大小
整数类型
下表列出了关于标准整数类型的存储大小和值范围的细节:
| 类型 | 存储大小 | 值范围 |
|---|---|---|
| char | 1 byte | -128 到 127 或 0 到 255 |
| unsigned char | 1 byte | 0 到 255 |
| signed char | 1 byte | -128 到 127 |
| int | 2 或 4 bytes 大部分机器都是int型4个字节 |
-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 |
可以知道char也是整数类型
可以使用 sizeof 运算符。表达式 sizeof(type) 得到对象或类型的存储字节大小 如**sizeof(int) 返回4**
浮点类型
| 类型 | 存储大小 | 值范围 | 精度 |
|---|---|---|---|
| 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 位小数 |
类型转换
类型转换不适用于赋值运算符、逻辑运算符 && 和 || (是不适合,不是不能,因为有的时侯不报错,有的时候会报错。如float a=0;int b=0 a=b 不报错 b=a 报错)
自动转换
- 字符型与数值型计算时会转为ASCII 函数参数如果是int或者char 也可以传入char或者int,会自动转
- 浮点型转int执行去尾法
