103 lines
3.0 KiB
Markdown
103 lines
3.0 KiB
Markdown
# 2. 基本数据类型
|
||
|
||
在编程中,**数据类型**用于定义变量可以存储的数据种类。掌握各种基本数据类型是理解变量、表达式和内存占用的基础。
|
||
|
||
---
|
||
|
||
## 【 1 】整数型:`int`、`long long`
|
||
|
||
### 🔹 `int` 【难度:1】
|
||
- 用于表示一般范围的整数(如:-100, 0, 999 等)。
|
||
- 占用内存:通常为 **4字节(32位)**
|
||
- 范围(有符号):约 -2<sup>31</sup> 到 2<sup>31</sup>-1
|
||
|
||
```cpp
|
||
int age = 18;
|
||
```
|
||
|
||
### 🔹 `long long` 【难度:1】
|
||
- 表示更大的整数,通常用于涉及大数计算(如阶乘、数据统计等)。
|
||
- 占用内存:**8字节(64位)**
|
||
- 范围(有符号):约 -2<sup>63</sup> 到 2<sup>63</sup>-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 |
|
||
|
||
---
|
||
|
||
## ✅ 小结
|
||
|
||
- 整数类型用于计数、下标等离散数据;
|
||
- 实数类型用于精确度要求较高的计算;
|
||
- 字符类型用于文本字符操作;
|
||
- 布尔类型用于控制逻辑和条件判断。
|