C 数组
目标
在本文章中,您将学习C数组、如何声明数组以及如何有效地操作数组中的元素。
介绍C数组
数组是一种由相同类型的项组成的数据结构。从技术上讲,数组是一组具有相同类型的连续存储单元。
声明一个数组
要定义数组,你需要指定:
1.元素的类型。
2.数组的名字。
3.数组的大小,指定数组可以容纳的元素的数量。
下面是声明数组的语法:
类型 数组名[大小]
下面的例子声明了一个包含5个整数的数组:
int a[5];
当你声明一个数组时,编译器会分配一个存储整个数组的内存块。数组元素按顺序存储在内存中,如下图所示:
访问数组元素
数组中的项称为元素。每个元素都有一个索引。第一个元素的索引是0,第二个元素的索引是1,以此类推。如果数组有n个元素,则最后一个元素的下标为n - 1。
要访问数组中的元素,可以使用方括号语法,如下所示:
数组名[索引]
要给数组元素赋值,可以使用下面的语法:
数组名[索引] = 值;
下面的程序演示了如何将整数赋给数组中的元素并显示数组中的元素:
#include
int main()
{
const int SIZE = 10; // 数组大小
int a[SIZE]; // 10个整数的数组
// 给数组赋值
int i;
for (i = 0; i < SIZE; i++)
a[i] = i;
// 显示数组
for (i = 0; i < SIZE; i++)
printf("%d ", a[i]);
return 0;
}
它是如何执行的。
首先,使用SIZE
常量声明数组的大小:
const int SIZE = 10;//数组的大小
其次,声明一个整数数组,其大小由SIZE常量指定:
int a[SIZE];
数组a最多可以容纳10个整数。
第三,为数组元素分配从0到9的整数:
int i;
for (i = 0; i < SIZE; i++)
a[i] = i;
最后,显示数组元素:
for (i = 0; i < SIZE; i++)
printf("%d ", a[i]);
初始化数组
当你声明一个变量时,你可以将它初始化为一个值。例如:
int i = 0;
类似地,将数组初始化为变量。要初始化数组,你需要在声明部分指定用花括号括起来的值,如下所示:
类型 数组名[大小] = {值1,值2,...};
值{值1, 值2,...}通常被称为初始化器。
例如,下面声明了一个名为scores的数组,它包含从1到5的5个整数:
int scores[5] = {1, 2, 3, 4, 5};
如果忽略数组的大小,C将创建一个大小与初始化式数量相同的数组:
int scores[] = {1, 2, 3, 4, 5};
在本例中,scores数组的大小为5。
如果提供较少的初始化值,则其余元素将被初始化为零。例如:
#include
int main()
{
int a[3] = {1};
for (int i = 0; i < 3; i++)
printf("%d ", a[i]);
return 0;
}
输出:
1 0 0
在这个例子中,我们声明了一个大小为3的数组。但是,我们用一个值初始化它。因此,第二个和第三个元素是零。
C数组的例子
下面的程序允许你输入10个数字,将它们赋给数组元素,并计算数组元素的和:
#include
int main()
{
// 声明数组
const int SIZE = 10;
int numbers[SIZE];
int i;
// 提示输入
printf("请输入10个数用于数组元素:");
for (i = 0; i < SIZE; i++)
scanf("%d", &numbers[i]);
// 计算数组元素的和
int total = 0;
for (i = 0; i < SIZE; i++)
total += numbers[i];
// 显示和
printf("数组元素的和是 %d ", total);
return 0;
}
它是如何执行的。
第一步,声明一个10个整数的数组:
// 声明数组
const int SIZE = 10;
int numbers[SIZE];
第二步,提示输入10个整数,分配每一个数到数组元素:
// 提示输入
printf("请输入10个数用于数组元素:");
for (i = 0; i < SIZE; i++)
scanf("%d", &numbers[i]);
第三步,计算数组元素的和然后显示结果:
// 计算数组元素的和
int total = 0;
for (i = 0; i < SIZE; i++)
total += numbers[i];
// 显示和
printf("数组元素的和是 %d ", total);
总结
- 数组是一种包含固定数量的相同类型元素的数据结构。
- 数组中的每个元素都由索引标识。第一个元素的下标是0。
- 通过将逗号分隔的值列表赋给数组变量来初始化数组元素。