一·一维数组
一维数组的定义:
定义一个数组,需要明确数组的变量名,数组的元素的类型以及数组的大小(即数组中元素的数量)
一般形式为:类型名 数组名【数组长度】。
类型名称指数组中元素的类型,而数组长度是一个整形常量表达式。数组的长度是一个常量,即当数组的起始地址确定时,数组内的任意元素的地址都能够通过计算得到。
而数组名是一个数组所分配到的连续储存空间中的首地址,因此其是一个地址常量,不能够被改变。
一维数组的引用:
C语言规定,一次只能引用单个数组元素,而不能一次引用整个数组。
数组的引用要指定下标,形式为:数组名【下标】。
下标的合理取值范围为【0,数组长度-1】。
注:在编程时下标不能越界,一旦发生越界,数据就会溢出而造成严重后果。
一维数组的初始化:
一般形式为:类型名 数组名【数组长度】={初值表}。
一维数组的使用:
例:选择法排序
#include <stdio.h>
int main()
{
int a[1000];
int n;
int t, k;
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
for (int i = 0; i < n - 1; i++)
{
k = i;
for (int j = i + 1; j < n; j++)
{
if (a[j] > a[k])//找到数组内最大值对应的下标
k = j;
}
t = a[k];//将最大值与数组内下标为i的元素交换值
a[k] = a[i];
a[i] = t;
}
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
return 0;
}
分析:
在未排序的数组的n个数中,先找到最小的元素使其与a【0】交换,再在剩下的n-1个数中找到最小数使其与a【1】交换,以此类推即可将数组排序。
二·二维数组
定义:
二维数组定义的一般形式:
类型名 数组名【行长度】【列长度】。
引用:
引用二维数组需要两个下标,即行下标和列下标,形式为:
数组名【行下标】【列下标】。
行下标合理取值范围:【0,行长度-1】,列下标合理取值范围:【0,列长度-1】。
二维数组的初始化:
1·分行赋值法
一般形式为:
类型名 数组名【行长度】【列长度】={{初值表0},···,{初值表k},···,}。
2·顺序赋值法
一般形式:
类型名 数组名【行长度】【列长度】={初值表};
即将初值表中数据依次付给元素。