首页 > 解决方案 > 本地范围解析

问题描述

我决定将函数运算符的范围从全局更改为本地。从注释代码更改后,我发现我的代码不再运行并退出并出现错误:

C4700 使用了未初始化的局部变量“n”。\

这似乎与实际的局部解析方法存在相当明显的矛盾。有人对此有解释吗?

int Combs::factorial(int a)
{
    //value = 1;
    int n;
    for (int i = a; i >0; i--)
    {
        n *= i;
    }
    cout << n;
    return n;
}

标签: c++scope

解决方案


当变量在全局/文件范围内声明时,编译器会为你初始化它,当它是函数的本地时,它不会,所以你需要自己做。

n确实使用了单元化,当它是一个全局变量时它不是。


推荐阅读