C编程语言中的数组是相似类型元素的集合(类型可以是整数、浮点数、长整型等)。因此,在这种语言中,我们不能在一个数组中存储多种数据类型的值。
例如,C语言中的一个整型数组将存储所有整型元素。如果你试图向该数组中插入一个浮点数或字符值,编译器将会抛出错误。
在我们之前的文章中,我们看到了变量的声明和初始化,这对于常规用途来说已经足够了。但如果我们想存储50名员工的工资呢?创建50个变量并为它们赋值值得吗?如果是100名员工呢?C编程语言引入了数组的概念来处理这些问题。
C编程中的数组类型
在这种编程语言中,有三种类型的数组
C语言数组语法
在这种编程中,一维数组的语法如下
Data_Type ArrName [ArrSize];
- Data_type(数据类型):它将决定数组接受的元素类型。例如,如果我们想存储整数,那么我们将数据类型声明为int。如果我们想存储浮点值,那么我们将数据类型声明为float,等等。
- ArrName(数组名):这是你想要给它的名称。例如,students、age、marks、employees等。
- Arr_Size(数组大小):数组可以容纳或存储的元素数量。例如,如果Arr_Size =10,它将容纳10个值。
例如,int Student_Age[5];
- 在这里,我们使用int作为数据类型来声明这种编程中的一个数组。所以,它只接受整数。如果你尝试添加浮点值,它将会抛出错误。
- Student_Age 是名称。
- 数组的大小是5。这意味着Student_Age将只接受5个整数。
- 如果我们尝试存储超过5个,编译器将会抛出错误。
- 我们可以存储少于5个。例如,如果我们存储3个整数值,剩下的2个将被赋为默认值(0)。
C编程中数组的初始化
初始化数组有多种方法,第一种声明方法是
int Employees[5] = {1, 2, 3, 4, 5}
在这里,我们仅在声明时初始化了数组。
- 在声明时初始化数组始终是最佳实践。如果你不知道值,就初始化为0或null。
- 其中的项可以通过索引值来访问。
- 索引值从0开始,到n-1结束,其中n是大小。
第二种初始化方法
int Employees[ ] = {1, 2, 3, 4, 5}
在这里,我们没有指定大小。然而,编译器足够智能,可以通过检查元素数量来计算C语言中数组的大小。
第三种初始化方法
int Employees[5] = {1, 4, 5}
在这里,我们声明了大小为5的Employees数组,但我们只赋了3个变量。在这种情况下,剩余的值被赋为默认值(0)。
上面声明的数组示例将是
Employees[5] = {1, 4, 5, 0, 0}
//It means
Employees[0] = 1
Employees[1] = 4
Employees[2] = 5
Employees[3] = 0
Employees[4] = 0
第四种初始化方法
以上3种方法适合用于存储少量元素。但如果我们想存储50个、100个或更多值呢?使用上述任何一种方法添加所有这些值将是一场噩梦。为了解决这个问题,我们可以使用循环概念和数组。
int i, Employees[100];
for (i =0; i < 100 ; i++)
{
Employees[i] = i*2;
}
在C编程中访问数组元素
我们可以使用索引来访问数组的元素。使用索引,我们可以单独访问或更改其中的每个项。索引值从0开始,到n-1结束,其中n是大小。
例如,如果一个数组存储了5个元素,索引从0开始,到4结束。要访问或更改第一个值,使用ArrName[0],要访问或更改第五个值,使用ArrName[4]。让我们看下面的例子以便更好地理解。
int Student_Age[5] = {5, 10, 15, 20, 25};
//To Access the values in the Student_Age[5]
Printf("%d", Student_Age[0]); - It will display the First element = 5
Printf("%d", Student_Age[3]); - It will display the Fourth element = 20
//To Alter the values in the Student_Age[5]
Student_Age[2] = 56; - It will change the value of Student_Age[2] from 15 to 56
Student_Age[4] = 92; - It will change the value of Student_Age[4] from 25 to 92
最终输出将是 {5, 10, 56, 20, 92}
C编程中的数组示例
在这个程序中,我们将声明一个大小为10的整型数组。我们将对这10个值求和并显示输出。
#include <stdio.h>
int main()
{
int i, Sum =0;
int ExArr[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
for (i=0; i<10; i++)
{
Sum = Sum + ExArr[i];
printf("Addition of %d to it = %d \n", ExArr[i], Sum);
}
printf("\nTotal Sum of the value in ExArr = %d \n", Sum);
return 0;
}

在这个数组示例中,我们声明了以下内容。
ExArr[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
ExArr[10] 是一个大小为10的整型数组(索引值为0到9)。我们在声明时为这10个值赋了值。
for (i=0; i<10; i++) 语句,从0开始迭代,并执行直到达到9,因为我们的索引值在9结束。
Sum= sum+ExArr[i]; 语句用于将ExArr[10]中存在的每个单独元素相加。
让我们按迭代次序来看C语言数组程序的执行过程
第一次迭代:for (i = 0; i < 10; i++)
Sum = Sum + ExArr[i]
这里,i的值是0,Sum = 0。所以,Sum = Sum + ExArr[0]
Sum = 0 + 10 = 10
第二次迭代:for (i = 1; 1 < 10; 1++)
Sum = Sum + ExArr[1]
Sum = 10 + 20 = 30
第三次迭代:for (i = 2; 2 < 10; 2++)
Sum = Sum + ExArr[2]
Sum = 30 + 30 = 60
数组的第四次迭代:for (i = 3; 3 < 10; 3++)
Sum = Sum + ExArr[3]
Sum = 60 + 40 = 100
第五次迭代:for (i = 4; 4 < 10; 4++)
Sum = Sum + ExArr[4] = 100 + 50 = 150
第六次迭代:for (i = 5; 5 < 10; 5++)
Sum = Sum + ExArr[5] = 150 + 60 = 210
第七次迭代:for (i = 6; 6 < 10; 6++)
Sum = Sum + ExArr[6] = 210 + 70 = 280
数组的第八次迭代:for (i = 7; 7 < 10; 7++)
Sum = 280 + 80 (ExArr[7]) = 360
第9次迭代:for (i = 8; 8 < 10; 8++)
Sum = Sum + ExArr[8] = 360 + 90 = 450
第10次迭代:for (i = 9; 9 < 10; 9++)
Sum = Sum + ExArr[9] = 450 + 100 = 550
对于下一次迭代,for循环内的条件(10 < 10)将不成立。
评论已关闭。