[英]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 ++的常规教程)的教程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.