C语言数据类型分类
C语言数据类型的分类方式如下:
基本类型和枚举类型,统称算术类型(arithmetic type)。算术类型和指针类型,统称为标量类型(scalar type)。数组类型和结构类型被统称为聚合类型(aggregate type)。联合类型(union type)不被认为是聚合类型,因为在任一时刻下,联合中只有一个成员可以具有值。
函数类型(function type)描述了函数的接口。这指的是,该类型既指定了函数返回值的类型,又指定了在调用该函数时,传递给函数的所有参数的类型。
其他所有数据类型都是用来描述对象。这种描述可能包括也可能没有包括对象存储空间大小信息。如果包括,这种数据类型就称为对象类型(object type);如果不包括,就是不完整类型(incomplete type)。
下例,由外部定义的数组变量就是一个不完整类型:
某些数据类型在定义时使用了多个关键字,例如 unsigned short。在这种情况下,不限制关键字排列次序。但是,关键字次序存在习惯性的排列方式,本书遵照该惯例。
-
基本类型
- 标准整数类型,以及扩充的整数类型
- 实数浮点类型,以及复数浮点类型
- 枚举类型
- void类型
-
派生类型
- 指针类型
- 数组类型
- 结构类型
- 联合类型
- 函数类型
基本类型和枚举类型,统称算术类型(arithmetic type)。算术类型和指针类型,统称为标量类型(scalar type)。数组类型和结构类型被统称为聚合类型(aggregate type)。联合类型(union type)不被认为是聚合类型,因为在任一时刻下,联合中只有一个成员可以具有值。
函数类型(function type)描述了函数的接口。这指的是,该类型既指定了函数返回值的类型,又指定了在调用该函数时,传递给函数的所有参数的类型。
其他所有数据类型都是用来描述对象。这种描述可能包括也可能没有包括对象存储空间大小信息。如果包括,这种数据类型就称为对象类型(object type);如果不包括,就是不完整类型(incomplete type)。
下例,由外部定义的数组变量就是一个不完整类型:
extern float fArr[]; // 外部声明
这行代码声明 fArr 为一个数组,其元素为 float 类型。然而,由于上述代码没有指定该数组的大小,所以 fArr 的类型是不完整的。只要全局数组 fArr 在该程序的其他位置(例如,在其他源文件中)通过指定数组大小来完成定义,则上述声明足以使得在当前作用域内使用该数组。某些数据类型在定义时使用了多个关键字,例如 unsigned short。在这种情况下,不限制关键字排列次序。但是,关键字次序存在习惯性的排列方式,本书遵照该惯例。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算