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 个元素,对吧?但实际上,如果我在我的 for
周期中将 3 更改为 4,我将出现超出范围的错误。为什么会这样?我错过了什么吗?
那么,arr[3][3] 中有多少元素?
声明数组的时候,写的是元素个数(不算0,int arr[3]
是3个元素的数组,只有用的时候才从0开始数(arr[2] = 666
访问第三个元素)。
So, logically, an array arr[3][3]
should have 4 * 4 = 16
elements, right?
这是不正确的。
对于
int arr[3];
有效元素范围是arr[0]
- arr[2]
。有3个元素。
对于
int arr[3][3];
有效元素范围是arr[0][0]
- arr[2][2]
。共有9个元素。
I know that array's first index in C++ is zero.
你是对的。
So, logicaly, an array arr[3][3]should have 4 * 4 = 16 elements,
right?
由于第一个索引是 0,arr[3][3] 将是 0,1,2 行和 0,1,2 列。所以,9个元素
查看此 link 数组教程(或一般的 C++ ☺)
我是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 个元素,对吧?但实际上,如果我在我的 for
周期中将 3 更改为 4,我将出现超出范围的错误。为什么会这样?我错过了什么吗?
那么,arr[3][3] 中有多少元素?
声明数组的时候,写的是元素个数(不算0,int arr[3]
是3个元素的数组,只有用的时候才从0开始数(arr[2] = 666
访问第三个元素)。
So, logically, an array
arr[3][3]
should have4 * 4 = 16
elements, right?
这是不正确的。
对于
int arr[3];
有效元素范围是arr[0]
- arr[2]
。有3个元素。
对于
int arr[3][3];
有效元素范围是arr[0][0]
- arr[2][2]
。共有9个元素。
I know that array's first index in C++ is zero.
你是对的。
So, logicaly, an array arr[3][3]should have 4 * 4 = 16 elements, right?
由于第一个索引是 0,arr[3][3] 将是 0,1,2 行和 0,1,2 列。所以,9个元素
查看此 link 数组教程(或一般的 C++ ☺)