C 数组
C 数组
在本教程中,您将学习使用数组。您将通过示例学习声明、初始化和访问数组的元素。
<图>数组是可以存储多个值的变量。比如你要存储100个整数,你可以为它创建一个数组。
int data[100];
如何声明一个数组?
dataType arrayName[arraySize];
例如,
float mark[5];
在这里,我们声明了一个数组,mark , 浮点型。它的大小是5。意思是,它可以容纳5个浮点值。
请务必注意,数组的大小和类型一经声明就无法更改。
访问数组元素
您可以通过索引访问数组的元素。
假设你声明了一个数组 mark 如上。第一个元素是 mark[0] , 第二个元素是 mark[1] 等等。
<图>几个主题演讲 :
- 数组的第一个索引是 0,而不是 1。在这个例子中,mark[0] 是第一个元素。
- 如果数组的大小为 n , 访问最后一个元素,
n-1
使用索引。在本例中,mark[4] - 假设
mark[0]
的起始地址 是 2120d .然后,mark[1]
的地址 将是 2124d .同理mark[2]
的地址 将是 2128d 等等。
这是因为float
的大小 是 4 个字节。
如何初始化数组?
可以在声明期间初始化数组。例如,
int mark[5] = {19, 10, 8, 17, 9};
你也可以像这样初始化一个数组。
int mark[] = {19, 10, 8, 17, 9};
在这里,我们没有指定大小。但是,编译器知道它的大小是 5,因为我们用 5 个元素对其进行初始化。
<图>在这里,
mark[0] is equal to 19 mark[1] is equal to 10 mark[2] is equal to 8 mark[3] is equal to 17 mark[4] is equal to 9
改变数组元素的值
int mark[5] = {19, 10, 8, 17, 9}
// make the value of the third element to -1
mark[2] = -1;
// make the value of the fifth element to 0
mark[4] = 0;
输入和输出数组元素
以下是如何从用户那里获取输入并将其存储在数组元素中。
// take input and store it in the 3rd element
scanf("%d", &mark[2]);
// take input and store it in the ith element
scanf("%d", &mark[i-1]);
以下是如何打印数组的单个元素。
// print the first element of the array
printf("%d", mark[0]);
// print the third element of the array
printf("%d", mark[2]);
// print ith element of the array
printf("%d", mark[i-1]);
示例 1:数组输入/输出
// Program to take 5 values from the user and store them in an array
// Print the elements stored in the array
#include <stdio.h>
int main() {
int values[5];
printf("Enter 5 integers: ");
// taking input and storing it in an array
for(int i = 0; i < 5; ++i) {
scanf("%d", &values[i]);
}
printf("Displaying integers: ");
// printing elements of an array
for(int i = 0; i < 5; ++i) {
printf("%d\n", values[i]);
}
return 0;
}
输出
Enter 5 integers: 1 -3 34 0 3 Displaying integers: 1 -3 34 0 3
在这里,我们使用了 for
循环从用户那里获取 5 个输入并将它们存储在一个数组中。然后,使用另一个 for
循环,这些元素会显示在屏幕上。
示例 2:计算平均值
// Program to find the average of n numbers using arrays
#include <stdio.h>
int main()
{
int marks[10], i, n, sum = 0, average;
printf("Enter number of elements: ");
scanf("%d", &n);
for(i=0; i<n; ++i)
{
printf("Enter number%d: ",i+1);
scanf("%d", &marks[i]);
// adding integers entered by the user to the sum variable
sum += marks[i];
}
average = sum/n;
printf("Average = %d", average);
return 0;
}
输出
Enter n: 5 Enter number1: 45 Enter number2: 35 Enter number3: 38 Enter number4: 31 Enter number5: 49 Average = 39
在这里,我们计算了 n 的平均值 用户输入的数字。
访问越界的元素!
假设您声明了一个包含 10 个元素的数组。比方说,
int testArray[10];
您可以从 testArray[0]
访问数组元素 到 testArray[9]
.
现在假设您尝试访问 testArray[12]
.该元素不可用。这可能会导致意外的输出(未定义的行为)。有时您可能会遇到错误,而有时您的程序可能会正常运行。
因此,您永远不应该访问超出其边界的数组元素。
多维数组
在本教程中,您了解了数组。这些数组称为一维数组。
在下一个教程中,您将学习多维数组(array of an array)。
C语言