c++ - 本地范围解析
问题描述
我决定将函数运算符的范围从全局更改为本地。从注释代码更改后,我发现我的代码不再运行并退出并出现错误:
C4700 使用了未初始化的局部变量“n”。\
这似乎与实际的局部解析方法存在相当明显的矛盾。有人对此有解释吗?
int Combs::factorial(int a)
{
//value = 1;
int n;
for (int i = a; i >0; i--)
{
n *= i;
}
cout << n;
return n;
}
解决方案
当变量在全局/文件范围内声明时,编译器会为你初始化它,当它是函数的本地时,它不会,所以你需要自己做。
n
确实使用了单元化,当它是一个全局变量时它不是。
推荐阅读
- java - 为什么它的类型是 Nothing?
- json - 在命令行中使用 osmtogeojson 编码问题
- react-native - 按 id 分组通知并像 Whatsapp 一样显示
- c - 结构看不到指针?
- android - 在选择器 StateListDrawable 中使用 attr 引用
- javascript - 如何使用单独的模板文件构建简单的 Vue.js 应用程序?
- python - 在散景中通过 CustomJS 触发 HoverTool 工具提示的显示
- kotlin - Kotlin 测试,如何使用 DescribeSpec 测试样式运行 BeforeEach
- javascript - V-Select 在一次选择中显示整个阵列
- r - 在使用多个模式时找出匹配的模式