AlenaNuna

导航

关于局部变量和STL容器初始化问题

在函数内部定义局部变量和数组时,如果没有显式初始化,很容易出现奇怪的结果。

比如你在main函数中定义一个数组bool book[100];但是没有初始化它。如果在全局变量中,它其实是会默认初始化为空的。即全局变量中,它会自动bool book[100]={0};但是在局部变量中,其值是未定义的,可能包含随机值。因此,建议显示初始化内置类型的局部变量。

 局部变量的初始化:

1. 内置类型(如 `int`, `char`, `bool` 等):
- 局部变量如果没有显式初始化,其值是未定义的,可能包含随机值。
- 因此,建议显式初始化内置类型的局部变量。

2. 标准库容器类型(如 `std::vector`, `std::queue` 等):
- 标准库容器类型(如 `std::vector`, `std::queue` 等)在定义时会自动调用其默认构造函数进行初始化。
- 这些容器在默认构造后是空的,不需要显式初始化。

posted on 2024-09-13 00:00  AlenaNuna  阅读(6)  评论(0编辑  收藏  举报