我是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 :(得分:1)
当你声明一个数组时,你会写出元素的数量(不计算0,int arr[3]
是一个包含3个元素的数组。只有当你使用它们时,才从0开始计数(arr[2] = 666
次访问第三要素)。
答案 1 :(得分:1)
所以,从逻辑上讲,数组
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个元素。
答案 2 :(得分:1)
我知道数组在C ++中的第一个索引是零。
你是对的。
所以,逻辑上,数组arr [3] [3]应该有4 * 4 = 16个元素, 正确?
由于第一个索引为0,因此arr [3] [3]将为0,1,2行和0,1,2列。所以,9个元素
查看此链接以获取有关数组(或C ++)的教程