数组
数组,本身定义为:是有序的元素序列,若将有限个类型相同的变量的集合命名,那么这个名称为数组名。在这里我们不讨论其他定义和作用,我们来看他在C语言中的具体作用。
一,一维数组
在C语言中,可以表示为a[10],其中,a为数组名,10为下标——当然,这样讲肯定比较抽象,我们来看个小例子:
#include <stdio.h>
int main()
{
int shuzu[10]={1,2,3,4,5,6,7,8,9,10,11};
return 0;
}
这个例子中,我们把数组名命名为了“shuzu”,并给他赋予了值,但是,下标为10,为什么却存放了11个值呢?这是因为数组定义中,是从“0”开始计数的,可以这样理解:
值 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
所以,如果我们想要创建一个具有五个存储空间的一维数组,我们可以写成:a[4],同时,我们不仅可以在定义时直接赋值,也可以利用scanf函数进行输入赋值。
到这里我们可以看出数组一个显然的特点:省。他不需要我们去定义多个变量,去赋值多个变量,想定义10个?a[10],想定义100个?a[100]!数据存放量大,做到了省代码,省时间,方便我们处理大规模的数据。
二,二维数组
即a[10][10],二维数组又称为矩阵,有行列之分,第一个[10]即为行,第二个为列,二维数组的出现为代码编程提供了更多可能,他不再是只有存储大量数据的优点,运用二维数组计算如杨辉三角:
#include <stdio.h>
int main()
{
int a[10][10],i,j;
for(i=0;i<=9;i++)
for(j=0;j<=i;j++)
{
if(j==0 || i==j)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
for(i=0;i<=9;i++)
{
for(j=0;j<=i;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
return 0;
}
画矩阵图,计算分数和平均分并输出等。同样的,他的计数也是从0开始。
三,数组的特点
数组的下标必须是一个数而不是一个变量。
使用strlen检测数组长度时,需要注意输入的值有没有\0,若没有则输出随机值。
一维数组和二维数组都是连续存储的。
数组也可用于冒泡排序法。