数组:
(1)数组是一组有序的数据结构的集合。数组中各数据的排列是有一定规律的,下标代表数据在数组中的序号。
(2)数组中的每一个元素都属于同一个数据类型,不能把不同类型的数据放在同一个数组中。
一维数组:
一般形式:类型符 数组名[常量表达式];
例如:
int a[10];
(1)在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,也就是数组长度;
(2)注意:这个数组的下标是从0开始的;即a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]。
特别注意: 该数组不存在a[10]号元素。
为什么数组的下标是从0开始?
“下标”确切的来说就是偏移量。如果用数组a来表示数组的首地址,a[0]就是偏移了0个位置(首地址),a[k]就是偏移了k+1个位置;
对一维数组的赋值:
(1)在定义数组时对全部的数组元素赋初值:
int a[10]={0,1,2,3,4,5,6,7,8,9};
将数组中各个元素的初值放在一个花括号内,数据之间用逗号隔开;
int i;
for(i=0;i<10;i++)//a[0]---a[9]
{
scanf("%d",a[i]);
}
用一个for循环将10个值输入,比一个一个赋值要轻松的多;
(2)对数组中一部分进行赋值:
int a[10]={0,1,2,3};
在定义的数组a中有10个元素,但花括号中只提供了4个初值,系统会自动把后面的6个值赋初值为0;
(3)数组中元素数据已经确定,可以不指定数组的长度:
int a[5]={0,1,2,3,4};
int a[]={0,1,2,3,4};
如果数组长度与提供的初值个数不相同,则方括号内的数组长度不能省略;
a[10]={1,2,3};
冒泡排序:
二维数组:
一般形式:
类型符 数组名[常量表达式][常量表达式];