帮我写一个程序展示局部变量和局部静态变量的差别
时间: 2023-08-28 14:14:28 浏览: 84
VB6.0中静态变量和局部变量的区别
好的,下面是一个示例代码,用于展示局部变量和局部静态变量的差别:
```c++
#include <iostream>
void exampleFunction() {
int localVar = 0;
static int staticVar = 0;
localVar++;
staticVar++;
std::cout << "Local variable value: " << localVar << std::endl;
std::cout << "Static variable value: " << staticVar << std::endl;
}
int main() {
std::cout << "Function call 1: " << std::endl;
exampleFunction();
std::cout << "Function call 2: " << std::endl;
exampleFunction();
std::cout << "Function call 3: " << std::endl;
exampleFunction();
return 0;
}
```
在这个程序中,我们定义了一个函数 `exampleFunction()`,其中包含一个局部变量 `localVar` 和一个局部静态变量 `staticVar`。在函数中,我们将这两个变量递增并输出它们的值。
在 `main()` 函数中,我们连续三次调用 `exampleFunction()`,并观察输出结果。
运行结果如下所示:
```
Function call 1:
Local variable value: 1
Static variable value: 1
Function call 2:
Local variable value: 1
Static variable value: 2
Function call 3:
Local variable value: 1
Static variable value: 3
```
我们可以看到,在每次函数调用中,局部变量 `localVar` 的值都是从零开始重新计算的,而局部静态变量 `staticVar` 的值会一直保留在函数调用之间。
这是因为局部变量只在函数调用期间存在,一旦函数执行完毕,变量就会被销毁。而局部静态变量在第一次函数调用时被创建,并一直存在于程序的整个生命周期中,直到程序结束。
阅读全文