c++ - C++ 中的单一错误

标签 c++

 #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; 之前换行,但这可能是由于您发布代码的方式所致。

关于c++ - C++ 中的单一错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39793239/

相关文章:

c++ - 如何使派生类在 CRTP 中的基类上模板化

c++ - 将字符串转换为 char*

c++ - 为什么覆盖出现在成员声明之后而不是与虚拟相同的地方?

c++ - 初始化变量在函数调用后丢失值

c++ - double 类型的参数与参数类型双指针不兼容

c++ - 传递这个双指针并获取值有什么问题?

c++ - 并发写入 vector<bool>

c++ - 如何在cpp中控制递归

c++ - 将常量引用传递给对象 C++

c++ - 从 C 文件调用 C++ 函数会出现 "undefined reference"编译器错误