# 2. 基本数据类型 在编程中,**数据类型**用于定义变量可以存储的数据种类。掌握各种基本数据类型是理解变量、表达式和内存占用的基础。 --- ## 【 1 】整数型:`int`、`long long` ### 🔹 `int` 【难度:1】 - 用于表示一般范围的整数(如:-100, 0, 999 等)。 - 占用内存:通常为 **4字节(32位)** - 范围(有符号):约 -231 到 231-1 ```cpp int age = 18; ``` ### 🔹 `long long` 【难度:1】 - 表示更大的整数,通常用于涉及大数计算(如阶乘、数据统计等)。 - 占用内存:**8字节(64位)** - 范围(有符号):约 -263 到 263-1 ```cpp long long population = 7800000000; ``` > 💡 提示:在程序中使用大整数时建议使用 `long long` 类型,并搭配 `ll` 作为字面量后缀(如:`1000000000ll`)。 --- ## 【 1 】实数型:`float`、`double` ### 🔹 `float` 【难度:1】 - 表示**单精度**浮点数,精度约为小数点后6位。 - 占用内存:**4字节** ```cpp float pi = 3.14159f; ``` ### 🔹 `double` 【难度:1】 - 表示**双精度**浮点数,精度约为小数点后15位。 - 占用内存:**8字节** ```cpp double e = 2.718281828459; ``` > ⚠ 注意:浮点数在计算中存在精度误差,判断是否相等时不要直接用 `==`,而应判断差值是否在一个误差范围内。 --- ## 【 1 】字符型:`char` - 用于表示单个字符,如 `'A'`、`'b'`、`'1'`。 - 实际上是存储字符的 **ASCII编码值**(整数)。 - 占用内存:**1字节** ```cpp char grade = 'A'; cout << (int)grade << endl; // 输出字符的 ASCII 编码:65 ``` > 💡 字符用单引号包裹(如:`'X'`),而不是双引号。 --- ## 【 1 】布尔型:`bool` - 只包含两个取值:`true`(真)、`false`(假) - 用于逻辑判断和条件语句 - 占用内存:**1字节**(虽然只需要1位,但通常按字节处理) ```cpp bool isPassed = true; if (isPassed) { cout << "考试通过!" << endl; } ``` > ✅ 在 C++ 中,`true` 等价于 `1`,`false` 等价于 `0`。 --- ## 🧠 扩展知识:类型对应内存大小与范围(一般情况下) | 类型 | 大小(字节) | 常规范围(有符号) | |------------|---------------|-----------------------------| | `char` | 1 字节 | -128 ~ 127 | | `int` | 4 字节 | -2,147,483,648 ~ 2,147,483,647 | | `long long`| 8 字节 | 超大整数范围 | | `float` | 4 字节 | ~±3.4e±38(7位有效数字) | | `double` | 8 字节 | ~±1.7e±308(15位有效数字) | | `bool` | 1 字节 | true / false | --- ## ✅ 小结 - 整数类型用于计数、下标等离散数据; - 实数类型用于精确度要求较高的计算; - 字符类型用于文本字符操作; - 布尔类型用于控制逻辑和条件判断。