【问题标题】:Local Scope Resolution [duplicate]本地范围解析 [重复]
【发布时间】:2021-05-01 22:12:18
【问题描述】:

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

使用了 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


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的参考,感谢您的帮助。
    • @ChrisHoy,很高兴为您提供帮助,您可以随时 accept the answer 获得更多实质性的感谢 ;)
    猜你喜欢
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 2019-07-04
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多