|
引用数组元素
数组的大部分用处在于它的元素可以单独访问。
这样做的方法是使用索引对元素进行编号。
记住!
C 中数组的编号从零开始。 强>
(这是强制性的 - 您必须从头开始。记住这一点尤为重要)
访问数组 A 的示例:
<前>
x = (A[3] + 5)*A[1]; //读取A[3]和A[1]的值
A[0] = x + 6; // 将新值写入 A[0]
让我们分析一下处理数组元素的程序。
<前>
#include ;
使用命名空间标准;
主要的()
{
int i=1,A[5];
A[0] = 23; //到数组的 5 个元素中的每一个(索引从 0 到 4)
A[1] = 12; //写一个特定的值
A[2] = 7;
A[3] = 43;
A[4] = 51;
A[2] = A[i] + 2*A[i-1] + A[2*i]; // 将索引为 2 的元素的值更改为表达式的结果
//因为i=1,那么将变量i的值代入我们得到的表达式
//下一个表达式 A[2] = A[i] + 2*A[0] + A[2];
输出 << A[2]+A[4];
执行该程序后,屏幕上将显示索引 2 等于 116 的数组元素的值。从示例中可以看出,我们可以访问数组中的任意元素大批。并且还使用各种公式计算所需的元素数量(例如,在程序 A[i-1] 或 A[2*i] 中,在这些情况下,将计算元素的索引并取决于i 的值。)
让我们看一个示例程序
<前>
#include;
使用命名空间标准;
主要的()
{
代码> 常量 N = 5;
int A[N];
x = 1;
输出 << A[x-3]; //引用元素 A[-2]
A[x+4]=A[x]+A[2*(x+1)]; //将 x 代入表达式和计算后,我们得到以下行:A[5] = A[1]+A[ 4];
...
}
因为该数组声明为有 5 个元素,这意味着元素将被编号从 0 到 4。 我们看到程序访问了不存在的元素:A[-2] 和 A[5]
原来是程序越界了
数组越界正在访问数组中不存在的索引元素。
在这种情况下,程序通常会因运行时错误 而崩溃
让我们尝试自己处理数组元素。 完成任务
|
遍历数组元素
使用数组时,通常必须同时处理数组的所有元素。
迭代元素包括遍历数组的所有 元素 并对每个元素执行相同的操作。<代码> 代码>
为此,通常使用带有变量的循环,它从 0 变为 N-1 ( N 数组元素的数量).
...
常量 N = 10;
int A[N];
对于 (i = 0; i < N; i++)
{
// 对元素 A[i] 的操作
}
...
在指定的循环中,变量i 将取值 0, 1, 2, ..., N-1 。 也就是说,在循环的每一步,我们都访问索引为 i 的特定数组元素。
因此,只需写下需要对 A[i] 数组的一个元素执行的操作并将这些操作放在这样的循环中即可。
任务
用前 N 自然数填充数组。那些。在程序结束时,数组的元素应该变得相等:
A[0] = 1;
A[1] = 2;
A[2] = 3;
...
A[N-1] = N;
很容易看出模式:数组元素的值必须比元素的索引大 1。
该循环将如下所示:
for (i=0; i
|