c++中的奇异错误

Singular error in C++

本文关键字:错误 c++      更新时间:2023-10-16
 #include <iostream>
 using namespace std;
 int main()
 {
     int somma[9],k=0,f=11;
     somma[k]=somma[k]+f;
     cout << "somma:" << somma[k];
     system("PAUSE"); 
 } 

这是我的代码。我期望输出值"11",但得到"10"。为什么会出现这个错误?

对于somma[k]+f,您正在读取数组somma[0]未初始化的元素的值。这样做的行为是未定义的。所以输出可以是任何值

解决方案是写int somma[9] = {};,它将所有元素设置为0。如果您需要C的可移植性,那么您可以改用= {0};

在c++中显式地返回main()的值也是一个好主意。

您还需要在using namespace std;之前换行,但这可能是由于您发布代码的方式。