c++ - 如何初始化变量,但是当启动所述函数时,变量的值不会重置?
问题描述
我做了这个例子来说明我在说什么。我想知道是否有一种方法可以在不将值重置为 0 的情况下运行 main()。
int main(){
int value = 0;
value++;
cout << value << endl;
main();
}
解决方案
在回答问题之前,您的示例有两个大问题
main
不允许打电话,甚至不接受地址。- 您的函数具有无限递归,这使您的程序具有未定义的行为。
在调用之间保存的另一个示例value
可能如下所示。它使用一个static
变量,0
在第一次调用函数时初始化,并且在程序执行期间永远不会再次初始化。
#include <iostream>
int a_function() {
static int value = 0;
++value;
if(value < 100) a_function();
return value;
}
int main(){
std::cout << a_function(); // prints 100
}
推荐阅读
- javascript - React 组件中的意外令牌,预期的“)”(if 语句)
- javascript - 响应动画图像网格库
- grok - 创建 Grok 模式
- c# - 填充
将元素名称导出到 Excel 的列表或数组 - prisma - Prisma 2:prisma 2 db pull 重写模式文件中的手动关系
- python - 使用运算符链接从 pandas 数据框中删除特定字符串
- php - 字符零“0”的PHP验证
- regex - 我想使用正则表达式检查字符串 | 没有嵌套,粘在一起,必须有内容
- python - Python Selenium Crawler 进入元素并获取详细信息
- php - 如何在组关系表 Laravel PHP 之后获取具有 where 条件的值的总和