Visual Studio生成“错误:未初始化的本地变量'x'”,而在线编译器不生成-为什么?

模因评论
int main() {
    int y, z, a, b, c;
    int x;
    double d;
    cout << "Enter Numbers! Enter -999 to Stop:\n";
    y = 0; z = 0; a = 0;
    b = 0; c = 0; d = 0;

while (x != -999) {

    cin >> x;

    if (x > 0) y++;
    if (x > 0) b += x;
    if (x == 0) z++;
    if (x < 0 && x != -999)a++;
    if (x < 0 && x != -999) c += x;



}
d = b * 1.0 / y * 1.0;
if (b == 0 || y == 0) {
    d = 0;
}

cout << "Total Positive Numbers are: " << y << endl;
cout << "Total Negative Numbers are: " << a << endl;
cout << "Total Zeros are: " << z << endl;
cout << "Sum of Positive Numbers is: " << b << endl;
cout << "Sum of Negative Numbers is: " << c << endl;
cout << "Average of Positive Numbers is: " << d * 1.0 << endl;
return 0;

}

Visual Studio编译器在第13行说其“使用的未初始化局部变量'x'”。

但是,在其他在线编译器上没有问题。

拔示巴

Visual Studio在这里对您很友好:读取未初始化变量的行为在C ++中未定义的,并且(x != -999)在第一次遇到时是未初始化的读取。

不要忽略其他编译器发出的警告。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么对赋值表达式[String x =(x = y)]的变量初始化进行编译?

为什么Java编译器不理解此变量总是初始化的?

Java中未初始化的类成员不会发出任何编译器错误。但是局部变量可以。为什么?

为什么此强制转换不生成编译器警告?

为什么编译器不抱怨此错误?

为什么编译器禁止初始化数组?

为什么Visual Studio C ++编译器拒绝将枚举作为模板参数?

如果将错误的参数类型传递给结构初始化程序列表,编译器为什么不生成编译错误?

为什么编译器不优化此初始化?

为什么我的开关块中出现“变量可能尚未初始化”的编译器错误?

为什么在OS X的Xamarin Studio中会出现以下错误,而在Visual Studio中却不会发生以下错误?

为什么Visual Studio不警告静态字符串的循环初始化?

初始化易失性数组时,为什么编译器会生成此类代码?

为什么在自动生成Equals时Visual Studio使用EqualityComparer?

为什么编译器不会生成重复错误?

为什么在循环中初始化数组时Rust编译器为什么会给出未初始化的变量错误?

scalac [scala编译器]为什么不生成所有必需的类文件?

为什么Visual Studio 2019不编译我的代码?

为什么不同的编译器生成不同大小的文件?

为什么x86-64 C / C ++编译器不能为此代码生成更有效的汇编?

为什么零初始化不是c ++中未初始化变量的默认值?有编译器选项可以强制执行吗?

为什么编译器将此变量初始化为错误的值?这是对齐问题吗?

为什么Visual Studio不了解“线程”?

为什么我收到“未初始化的变量”错误

什么是 ?和@符号表明此编译器错误?-Visual Studio 2013编译器

为什么会出现“无法访问的代码”和“变量未初始化”的编译错误?

Visual Studio 2015中的编译器是什么

编译器错误“变量x可能尚未初始化”的含义是什么?

为什么 PureScript 编译器会生成很多“| 0”