The-C++-Programming-Language(ch 4)
### C++ 编程语言 — 类型与声明 在 C++ 编程中,类型与声明是基础且核心的概念。本章节将详细解释 C++ 中的类型与声明相关内容,包括基本类型、布尔类型、字符类型、整数类型、浮点类型、枚举类型等,并深入探讨变量声明、作用域、初始化等内容。 #### 4.1 类型 [dcl.type] 在 C++ 中,每个标识符(名称)都有一个与之关联的类型。这个类型决定了可以对该标识符(即它所表示的对象或函数)执行哪些操作以及这些操作如何被解释。例如,在下面的代码片段中: ```cpp x = y + f(2); ``` 为了让这段代码有意义,`x`、`y` 和 `f` 必须适当地声明,即程序员必须指定名为 `x`、`y` 和 `f` 的实体存在,并且它们具有相应的类型,使得赋值 `=`、加法 `+` 和函数调用 `()` 分别有意义。 以下是一些示例声明: ```cpp float x; // x 是一个浮点变量 int y = 7; // y 是一个整数变量,初始值为 7 float f(int); // f 是一个接受整数参数并返回浮点数的函数 ``` 这些声明使上述例子变得有意义。因为 `y` 被声明为一个 `int` 类型,所以它可以被赋值,用于算术表达式等。另一方面,`f` 被声明为一个函数,接受一个 `int` 参数,因此可以用一个合适的参数来调用它。 #### 4.1.1 基本类型 ##### 4.1.1.1 布尔类型 布尔类型 (`bool`) 只有两个可能的值:`true` 和 `false`。布尔类型通常用于逻辑表达式和条件判断中。例如: ```cpp bool isEven = (x % 2 == 0); ``` 这里 `isEven` 将根据 `x` 是否能被 2 整除而被赋值为 `true` 或 `false`。 ##### 4.1.1.2 字符类型 字符类型 (`char`) 用于存储单个字符。字符可以是任何可打印字符,也可以是转义序列。例如: ```cpp char c = 'A'; // 存储字符 'A' char newline = '\n'; // 存储换行符 ``` 字符常量(`char` 类型的字面量)使用单引号括起来。如果需要存储多个字符,可以使用字符串。 ##### 4.1.1.3 整数类型 整数类型包括 `short`、`int`、`long` 和 `long long`,分别用于存储不同大小的整数值。例如: ```cpp short s = 32767; // 最大值通常是 32767 int i = 2147483647; // 最大值通常是 2147483647 long l = 2147483647L; // 后缀 L 表示 long 类型 long long ll = 9223372036854775807LL; // 后缀 LL 表示 long long 类型 ``` 整数类型还有无符号版本,如 `unsigned short`、`unsigned int` 等,这些类型用于存储非负整数,其取值范围比对应的有符号版本大一倍。 ##### 4.1.1.4 浮点类型 浮点类型用于表示实数。主要包括 `float`、`double` 和 `long double`。例如: ```cpp float f = 3.14f; // 后缀 f 表示 float 类型 double d = 3.14; // 默认为 double 类型 long double ld = 3.14L; // 后缀 L 表示 long double 类型 ``` 浮点类型的精度依次递增,`double` 比 `float` 更精确,而 `long double` 比 `double` 更精确。 #### 4.1.2 枚举类型 枚举类型 (`enum`) 用于定义一组命名的整数常量。枚举类型通常用于定义一组相关的常量,如一周中的天数。例如: ```cpp enum Weekday { Sun, Mon, Tue, Wed, Thu, Fri, Sat }; Weekday day = Mon; ``` 在这里,`Sun`、`Mon` 等都是枚举类型的元素,它们分别对应 0、1、2 等整数值。枚举类型的元素默认情况下按顺序赋值,从 0 开始。 #### 4.9 声明 声明告诉编译器某个标识符的存在及其类型。声明可以是变量声明、函数声明或类型声明。例如: ```cpp int x; // 声明一个整数变量 x void func(); // 声明一个无返回值的函数 func typedef int Integer; // 声明一个新的类型名 Integer,它是 int 的同义词 ``` 声明还可以包括初始化: ```cpp int x = 10; // 声明并初始化整数变量 x ``` #### 4.9.1 变量声明 变量声明定义了一个特定类型的变量。变量声明的形式为: ```cpp type identifier; // 例如:int x; ``` 其中 `type` 是变量的数据类型,`identifier` 是变量的名字。变量声明还可以包含初始化: ```cpp type identifier = value; // 例如:int x = 10; ``` 这里 `value` 是用来初始化变量的值。 #### 4.9.2 函数声明 函数声明(也称为函数原型)定义了函数的接口。它指定了函数的返回类型、函数名和参数列表。函数声明的形式为: ```cpp return_type function_name(parameters); // 例如:int add(int x, int y); ``` 其中 `return_type` 是函数返回值的类型,`function_name` 是函数的名字,`parameters` 是函数参数列表。 #### 4.9.3 类型声明 类型声明(通过 `typedef` 关键字)定义了新的类型名,作为现有类型的同义词。类型声明的形式为: ```cpp typedef existing_type new_type_name; // 例如:typedef int Integer; ``` 在这里,`existing_type` 是现有的类型,`new_type_name` 是新定义的类型名。 #### 总结 本章详细介绍了 C++ 中的基本类型与声明。我们了解了各种基本数据类型的特点和用途,包括布尔类型、字符类型、整数类型、浮点类型和枚举类型。此外,还深入探讨了变量声明、函数声明和类型声明的细节。掌握这些基础知识对于编写有效的 C++ 程序至关重要。接下来,我们可以进一步探索更复杂的类型,如数组、指针、结构体和类等。
- 粉丝: 0
- 资源: 45
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助