C ++偏向于数字42吗?

时间:2014-09-24 14:50:45

标签: c++

我只是想知道,C ++甚至Microsoft VS编译器是否对42号有一定的偏见?我正在尝试这个代码,它涉及一个多维数组,其中尚未声明任何内容(因此我在插入任何值之前测试输出):

// #included: iostream, iomanip, cstring, random, cmath 
using namespace std;

int main()
{
    // declaring the arrays
    int page[30][100];

    // printing out example values
    cout << "\n" << page[1][30];       // returns :  -858993460 
    cout << "\n" << page[18][18];      // returns :  -858993460 
    cout << "\n" << page[42][42];      // returns :   3014706 
    cout << "\n" << page[1][102];      // returns :  -858993460 

    return 0;
}

嗯,这本身并不奇怪吗?但如果我改变价值观,它又会再次发生。

这显然不仅仅是因为它们是同一类型的两个价值观。无论我在哪里放置代码片段,它都会发生,因此它不会是随机错误。你们觉得这是一个复活节彩蛋吗?

旁注:不,我不会掉酸。

1 个答案:

答案 0 :(得分:2)

这段代码中没有任何超自然现象 此处发布的值未定义,结果为undefined behavior

该值取决于当时使用的数据,可以是您的内存使用的任何内容。

这总是一个糟糕的想法。它会导致垃圾数据,并且几乎肯定会使您的代码出错。 (除非是出于学习目的)