数据类型分类

  • 基本类型:它们是算术类型,包括两种类型:整数类型和浮点类型。
  • 枚举类型:也是算术类型
  • void类型:类型说明符 void 表明没有可用的值
  • 派生类型:包括:指针类型、数组类型、结构类型、共用体类型和函数类型

数组类型和结构类型统称为聚合类型。
函数的类型指的是函数返回值的类型。

void类型

用法有三

  1. 函数返回为空
  2. 函数参数为空
  3. 指针指向 void

类型为 void 的指针代表对象的地址,而不是类型。例如,内存分配函数 **void malloc( size_t size );** 返回指向 void 的指针,可以转换为任何数据类型


数据类型大小

一个字节为8位

整数类型

下表列出了关于标准整数类型的存储大小和值范围的细节:

类型 存储大小 值范围
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 报错)

自动转换

数据类型 - 图1

  • 字符型与数值型计算时会转为ASCII 函数参数如果是int或者char 也可以传入char或者int,会自动转
  • 浮点型转int执行去尾法