帮我举同一个例子,要求有static和无static的,两者不要作为一个例子展开,且每个例子不包含另外一个条件
时间: 2024-03-23 08:36:14 浏览: 37
一个生成静态的例子
好的,以下是两个不同的例子,一个使用了 static,一个没有使用 static。
例子 1:使用 static
```c++
#include <iostream>
void increment() {
static int count = 0;
count++;
std::cout << "Count is " << count << std::endl;
}
int main() {
increment(); // 输出 Count is 1
increment(); // 输出 Count is 2
increment(); // 输出 Count is 3
return 0;
}
```
在这个例子中,我们定义了一个函数 `increment`,它包含一个 `static` 变量 `count`。每次调用 `increment` 函数时,变量 `count` 的值都会增加,但是它的生命周期并不会结束,也就是说,它会在下一次调用 `increment` 函数时保留它的值。这就是使用 `static` 变量的好处之一。
例子 2:不使用 static
```c++
#include <iostream>
void increment() {
int count = 0;
count++;
std::cout << "Count is " << count << std::endl;
}
int main() {
increment(); // 输出 Count is 1
increment(); // 输出 Count is 1
increment(); // 输出 Count is 1
return 0;
}
```
在这个例子中,我们定义了一个函数 `increment`,它包含一个普通的局部变量 `count`。每次调用 `increment` 函数时,变量 `count` 的值都会增加,但是它的生命周期仅限于函数的执行过程中,当函数执行完毕后,变量 `count` 的值会被销毁。因此,每次调用 `increment` 函数时,变量 `count` 的值都会重新初始化为 0。这就是不使用 `static` 变量的效果。
阅读全文