C++中访问存储在数组中的数据
要访问数组中的元素,可使用从零开始的索引。这些索引之所以被称为从零开始的,是因为数组中第一个元素的索引为零。因此,存储在数组 myNumbers 中的第一个整数值为 myNumbers[0],第二个为 myNumbers[1],依此类推。第 5 个元素为 myNumbers[4],换句话说,数组中最后一个元素的索引总是比数组长度少 1。
被要求访问索引为 N 的元素时,编译器以第一个元素(索引为零)的内存地址为起点,加上偏移量 N*sizeof(element),即向前跳 N 个元素,到达包含第 N+1 个元素的地址。 C++编译器不会检查索引是否在数组的范围内,您可从只包含 10 个元素的数组中取回索引为 1001 的元素,但这样做将给程序带来安全和稳定性方面的风险。访问数组时,确保不超越其边界是程序员的职责。
警告:
访问数组时,如果超越其边界,结果将是无法预料的。在很多情况下,这将导致程序崩溃。应不惜一切代价避免访问数组时超越其边界。
以下程序演示了如何声明一个 int 数组、初始化其元素并将元素的值显示到屏幕上:
#include <iostream>
using namespace std;
int main ()
{
int myNumbers [5] = {34, 56, -21, 5002, 365};
cout << "First element at index 0: " << myNumbers [0] << endl;
cout << "Second element at index 1: " << myNumbers [1] << endl;
cout << "Third element at index 2: " << myNumbers [2] << endl;
cout << "Fourth element at index 3: " << myNumbers [3] << endl;
cout << "Fifth element at index 4: " << myNumbers [4] << endl;
return 0;
}
输出:
First element at index 0: 34
Second element at index 1: 56
Third element at index 2: -21
Fourth element at index 3: 5002
Fifth element at index 4: 365
分析:
第 6 行声明了一个包含 5 个 int 元素的数组,并给每个元素指定了初始值。接下来的几行代码使用 cout、数组变量 myNumbers 和合适的索引显示这些整数。
注意:
用于访问数组元素的索引从零开始