繁体   English   中英

C ++多维数组容量

[英]C++ multidimensional array capacity

我是C ++的新手,并且已经开始学习数组。 这是我的数组程序:

#include <iostream>
using namespace std;
int main(){
    int arr[3][3];

    for (int i = 0; i<3; i++){

        for (int j = 0; j<3; j++){

            cout << "Enter " << j + 1 << " element of " << i + 1 << " row:";
            cin >> arr[i][j];

        }

    }

    for (int i = 0; i<3; i++){

        for (int j = 0; j<3; j++){
            cout << j + 1 << " element of " << i + 1 << "row:";

            cout << arr[i][j] << endl;


        }
    }
    system("pause");
    return 0;
}

我知道C ++中数组的第一个索引为零。 因此,从逻辑上讲,数组arr[3][3]应该具有4 * 4 = 16个元素,对吗? 但实际上,如果我改变我的3〜4 for周期,我会得到超出范围的错误。 为什么会发生? 我想念什么吗? 那么,arr [3] [3]中有多少个元素?

声明数组时,写入元素数(不计算0, int arr[3]是具有3个元素的数组。仅当使用它们时,才从0开始计数( arr[2] = 666访问第三个元素) )。

因此,从逻辑上讲,数组arr[3][3]应该具有4 * 4 = 16元素,对吗?

那是不对的。

对于

int arr[3];

有效元素范围是arr[0] arr[2] 有3个元素。

对于

int arr[3][3];

有效元素范围是arr[0][0] arr[2][2] 有9个元素。

我知道C ++中数组的第一个索引为零。

你是对的。

因此,从逻辑上讲,数组arr [3] [3]应该具有4 * 4 = 16个元素,对吗?

由于第一个索引为0,因此arr [3] [3]将为0,1,2行和0,1,2列。 因此,有9个元素 在此处输入图片说明

查看此链接以获取有关数组(或C ++的常规教程)的教程。

http://www.cplusplus.com/doc/tutorial/arrays/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM