判断题
在C++中,静态变量的生命周期会持续至程序结束。
答案解析
正确答案:A
解析:
好的,我们来详细解析一下这道判断题。
### 题目
在C++中,静态变量的生命周期会持续至程序结束。
答案: 正确
### 解析
#### 1. 静态变量的定义
在C++中,静态变量(static variable)是一种特殊的变量类型,它的生命周期和作用域与普通变量有所不同。静态变量可以在函数内部或类中声明,但它们的生命周期并不局限于函数的调用或对象的生命周期。
#### 2. 静态变量的生命周期
- **全局静态变量**:在文件作用域内声明的静态变量,其生命周期从程序开始到程序结束。
- **局部静态变量**:在函数内部声明的静态变量,其生命周期也是从程序开始到程序结束,但作用域仅限于声明它的函数。
#### 3. 示例
##### 全局静态变量
```cpp
#include
static int globalStaticVar = 0;
void printGlobalStatic() {
std::cout << "Global static variable: " << globalStaticVar << std::endl;
}
int main() {
printGlobalStatic();
globalStaticVar = 10;
printGlobalStatic();
return 0;
}
```
在这个例子中,`globalStaticVar` 是一个全局静态变量,它的生命周期从程序开始到程序结束。即使 `main` 函数结束,`globalStaticVar` 仍然存在于内存中,直到程序完全退出。
##### 局部静态变量
```cpp
#include
void printLocalStatic() {
static int localStaticVar = 0;
std::cout << "Local static variable: " << localStaticVar << std::endl;
localStaticVar++;
}
int main() {
printLocalStatic(); // 输出: Local static variable: 0
printLocalStatic(); // 输出: Local static variable: 1
printLocalStatic(); // 输出: Local static variable: 2
return 0;
}
```
在这个例子中,`localStaticVar` 是一个局部静态变量,它的生命周期也是从程序开始到程序结束。每次调用 `printLocalStatic` 函数时,`localStaticVar` 的值都会保留上次调用的结果,并在此基础上递增。
#### 4. 为什么答案是正确的
根据上述解析,无论是全局静态变量还是局部静态变量,它们的生命周期都是从程序开始到程序结束。因此,题目中的陈述“在C++中,静态变量的生命周期会持续至程序结束”是正确的。
