C语言中的数组是什么?

C编程语言中的数组是相似类型元素的集合(类型可以是整数、浮点数、长整型等)。因此,在这种语言中,我们不能在一个数组中存储多种数据类型的值。

例如,C语言中的一个整型数组将存储所有整型元素。如果你试图向该数组中插入一个浮点数或字符值,编译器将会抛出错误。

在我们之前的文章中,我们看到了变量的声明和初始化,这对于常规用途来说已经足够了。但如果我们想存储50名员工的工资呢?创建50个变量并为它们赋值值得吗?如果是100名员工呢?C编程语言引入了数组的概念来处理这些问题。

C编程中的数组类型

在这种编程语言中,有三种类型的数组

  1. 一维数组
  2. 二维数组
  3. 多维数组
    • 三维数组
    • 四维数组等

注意:在这种编程中,字符数组被称为字符串

C语言数组语法

在这种编程中,一维数组的语法如下

Data_Type ArrName [ArrSize];
  • Data_type(数据类型):它将决定数组接受的元素类型。例如,如果我们想存储整数,那么我们将数据类型声明为int。如果我们想存储浮点值,那么我们将数据类型声明为float,等等。
  • ArrName(数组名):这是你想要给它的名称。例如,students、age、marks、employees等。
  • Arr_Size(数组大小):数组可以容纳或存储的元素数量。例如,如果Arr_Size =10,它将容纳10个值。

例如,int Student_Age[5];

  1. 在这里,我们使用int作为数据类型来声明这种编程中的一个数组。所以,它只接受整数。如果你尝试添加浮点值,它将会抛出错误。
  2. Student_Age 是名称。
  3. 数组的大小是5。这意味着Student_Age将只接受5个整数。
    • 如果我们尝试存储超过5个,编译器将会抛出错误。
    • 我们可以存储少于5个。例如,如果我们存储3个整数值,剩下的2个将被赋为默认值(0)。

C编程中数组的初始化

初始化数组有多种方法,第一种声明方法是

int Employees[5] = {1, 2, 3, 4, 5}

在这里,我们仅在声明时初始化了数组。

  1. 在声明时初始化数组始终是最佳实践。如果你不知道值,就初始化为0或null。
  2. 其中的项可以通过索引值来访问。
  3. 索引值从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;
}
One Dimensional Array in C Programming

在这个数组示例中,我们声明了以下内容。

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)将不成立。

评论已关闭。