在C ++中打印具有不同列大小的2d数组

时间:2017-06-03 20:44:10

标签: c++ arrays 2d

我有以下2d数组:

 #define MAX_N 100
int main() {

    int myArray[MAX_N][MAX_N] = {
    { 01 },
    { 0123 },
    { 230 },
    { 1 }
};
    for (int j=0;j<4;j++){
    for (int i =0; i<4;i++)
    {cout << myArray[j][i];cout<<endl;}
    }
    while ( !_kbhit());
   return (0);
}

所需的输出是:

01
0123
230
1

然而,我不明白。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我想你不会以任何方式获得所需的输出。实际输出可能如下:

1
0
0
0
83
0
0
0
230
0
0
0
1
0
0
0

你不能回来0123的原因是这个整数文字存储为一个普通的整数值,在&#中是否有一个前导0时会丢失任何信息34;文本&#34;是否表示整数文字。此外,整数文字0123表示octal value,小数为83。请注意,数据存储为整数值,默认情况下以十进制格式输出。因此cout << 0123实际打印83

其次,您的循环还会访问未明确初始化的元素。例如,您的数组的第一行:myarray[0][1]..myarray[0][3]也会有一个输出,尽管您只分配myarray[0][0] = 1