最适合网络开发者的网站
C 语言。W3Schools 英文版。初学者课程

尿素 西斯

C 数组


数组

数组用于在单个变量中存储多个值,而不是为每个值声明单独的变量。

要创建数组,请定义数据类型(例如 int)并指定数组的名称,后跟 方括号 [].

要向其中插入值,请使用花括号内的逗号分隔列表:

int myNumbers[] = {25, 50, 75, 100};

现在我们已经创建了一个包含四个整数数组的变量。


访问数组的元素

要访问数组元素,请参考其 索引号.

数组索引以 0:[0] 是第一个元素。[1] 是第二个元素,等等。

此语句访问 第一个元素 [0]myNumbers:

例子

int myNumbers[] = {25, 50, 75, 100};
printf("%d", myNumbers[0]);

// 输出 25
亲自尝试 »

更改数组元素

要更改特定元素的值,请参考索引号:

例子

我的数字[0] = 33;

例子

int myNumbers[] = {25, 50, 75, 100};
我的数字[0] = 33;

printf("%d", myNumbers[0]);

// 现在输出 33 而不是 25
亲自尝试 »

循环遍历数组

您可以使用以下方式循环遍历数组元素 for 环形。

以下示例输出 myNumbers 大批:

例子

int myNumbers[] = {25, 50, 75, 100};
int 我;

对于(i = 0;i < 4;i++){
printf("%d\n", myNumbers[i]);
}
亲自尝试 »

设置数组大小

创建数组的另一种常见方法是指定数组的大小,然后添加元素:

例子

// 声明一个包含四个整数的数组:
int 我的数字[4];

// 添加元素
我的数字[0] = 25;
我的数字[1] = 50;
我的数字[2] = 75;
我的数字[3] = 100;
亲自尝试 »

使用这种方法, 你应该提前知道数组元素的数量,以便程序存储足够的内存。

创建数组后,您无法更改其大小。


获取数组大小或长度

要获取数组的大小,可以使用 sizeof 操作员:

例子

int myNumbers[] = {10, 25, 50, 75, 100};
printf("%lu", sizeof(myNumbers)); //打印 20
亲自尝试 »

为什么结果显示 20 代替5,当数组包含 5 个元素时?

— 这是因为 sizeof 运算符返回类型的大小字节.

您从中学到 数据类型章节int 类型通常为 4 个字节,因此从上面的例子来看,4 x 5(4 字节 x 5 个元素) = 20 字节.

当您使用需要良好内存管理的大型程序时,了解数组的内存大小非常有用。

但是当您只想知道数组有多少个元素时,可以使用以下公式(将数组的大小除以一个数组元素的大小):

例子

int myNumbers[] = {10, 25, 50, 75, 100};
int 长度 = 大小 (myNumbers) / 大小 (myNumbers[0]);

printf("%d", length); // 打印 5
亲自尝试 »

制作更好的循环

在里面 数组循环部分 上面我们在循环条件中写入了数组的大小(i < 4)。这并不理想,因为它只适用于指定大小的数组。

然而,通过使用 sizeof 通过上面例子中的公式,我们现在可以创建适用于任意大小数组的循环,这更具可持续性。

不要这样写:

例子

int myNumbers[] = {25, 50, 75, 100};
int 我;

对于(i = 0;i &lt; 4;i++){
printf("%d\n", myNumbers[i]);
}
亲自尝试 »

更好的写法是:

例子

int myNumbers[] = {25, 50, 75, 100};
int 长度 = sizeof(myNumbers) / sizeof(myNumbers[0]);
int 我;

对于(i = 0;i &lt; 长度;i++){
printf("%d\n", myNumbers[i]);
}
亲自尝试 »

现实生活中的例子

为了演示使用数组的实际例子,让我们创建一个计算不同年龄平均值的程序:

例子

// 存储不同年龄的数组
int 年龄[] = {20, 22, 18, 35, 48, 26, 87, 70};

浮点平均值,总和= 0;
int 我;

// 获取数组的长度
int 长度 = sizeof(年龄) / sizeof(年龄[0]);

// 循环遍历数组元素
对于(int i = 0; i &lt; 长度; i++){
总和 += 年龄[i];
}

// 通过将总和除以长度来计算平均值
平均值=总和/长度;

// 打印平均值
printf("平均年龄为:%.2f", avg);
亲自尝试 »

C 练习

通过练习测试自己

锻炼:

创建类型数组 int 称为myNumbers.

   {25, 50, 75, 100};