C++ 中的变量类型可以分为以下几类:
-
基本数据类型:包括整型、浮点型、字符型和布尔型等。其中,整型包括有符号和无符号两种类型,浮点型包括单精度和双精度两种类型,字符型用来表示单个字符,布尔型用来表示真假值。
-
枚举类型:用来表示一组具有离散值的常量。枚举类型中的每个常量都有一个整数值,可以通过枚举常量名来访问。
-
数组类型:用来表示一组相同类型的变量。数组中的每个元素都可以通过下标访问,下标从 0 开始计数。
-
指针类型:用来表示内存地址。指针可以指向任何类型的变量,通过指针可以访问所指向的变量。
-
引用类型:用来表示变量的别名。引用和原变量共享同一块内存空间,对引用的操作会直接影响原变量。
-
结构体类型:用来表示一组相关的数据成员。结构体中的每个成员可以是任何类型的变量,可以通过成员运算符 . 来访问结构体中的成员。
-
类类型:是一种更高级别的结构体类型,包括成员函数、构造函数、析构函数等特性,用来表示一个对象及其相关操作。
-
共用体类型(union):用来表示一组共用同一块内存的变量。共用体类型可以节省内存空间,但需要注意访问的正确性。
-
类型别名(typedef):用来给一个类型起别名。typedef 类型可以简化代码,提高程序的可读性和可维护性。
-
decltype 类型(decltype):用来推导表达式的类型。decltype 类型可以实现代码自动推导,避免手动推导带来的错误。
-
nullptr 类型(nullptr):用来表示空指针常量。nullptr 类型可以避免 NULL 指针带来的问题,提高程序的安全性。
-
alignas 类型(alignas):用来指定变量的对齐方式。alignas 类型可以提高程序的性能和可移植性。
-
constexpr 类型(constexpr):用来声明一个常量表达式。constexpr 类型可以在编译时求值,提高程序的性能和可移植性。
-
volatile 类型(volatile):用来声明一个变量是易变的。volatile 类型可以避免编译器对变量的优化,保证程序的正确性。
-
register 类型(register):用来声明一个变量可以存储在 CPU 的寄存器中。register 类型可以提高程序的性能,但并不是必须使用的。
-
signed 和 unsigned 类型:用来表示有符号和无符号的整数。signed 和 unsigned 类型可以控制整数的范围和符号,但需要注意类型转换时可能带来的问题。