【问题标题】:Not trying to get random numbers for the values in my array不尝试为我的数组中的值获取随机数
【发布时间】:2021-01-27 07:08:15
【问题描述】:

我是 C++ 编程新手。我只是想知道为什么这段代码有效,给我实际的数字:

#include <iostream>
using namespace std;

int main(){ 

    const int ARRAYSIZE = 10;
    int inc = 0;
    int arrayy[ARRAYSIZE];

    while (inc < ARRAYSIZE) {

        arrayy[inc]=inc;
        std::cout << arrayy[inc]<< endl;
        inc++;  
    }
}

但是这段代码为我的数组中的值提供了随机数:

#include <iostream>
using namespace std;

int main(){ 

    const int ARRAYSIZE = 10;
    int inc = 0;
    int arrayy[ARRAYSIZE];

    while (inc < ARRAYSIZE) {

        arrayy[inc]=inc;
        inc++;
        std::cout << arrayy[inc]<< endl;
        
    }
}

【问题讨论】:

  • 在第二种情况下,您不会打印放入数组中的值,而是打印数组中下一个插槽中的值,这可能是任何内容。

标签: c++ arrays printing


【解决方案1】:

在第二个中,您将值设置为 0,然后递增 inc,因此您打印出的值是您刚刚设置为 0 的值之后。因为它尚未初始化(还),它会产生任意(“随机”)值。

它还打印出数组末尾之后的值,这样做时会给出未定义的行为。

【讨论】:

    【解决方案2】:

    数组中的值不会被初始化为任何特定的值,除非您专门初始化它们。特别是,arrayy 中的所有值都是“随机的”,直到您设置它们。在你的第一个 sn-p 中,你设置arrayy[inc],然后打印它;这可以按您的预期工作。在第二个 sn-p 中,设置 arrayy[inc],然后打印 arrayy[inc + 1](因为此时您已经增加了 inc)。但是您尚未将 arrayy[inc + 1] 设置为任何值,因此打印的值是“随机的”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 2022-10-08
      相关资源
      最近更新 更多