十七、数组
1、把具有相同类型的若干变量按有序的形式组织起来,这些按顺序排列的同类型数据元素组成的集合称为数组,数组属于构造数据类型;
1)数组元素:构成数组的数据,元素有不同的下标,可以做单个变量使用;
2)数组的下标:是数组元素的位置的一个索引或标志,从0开始;
3)数组的维数:数组下标的个数 ,有几个就是几维数组。
2、按存储内容分类:数值数组、字符数组、指针数组、结构数组 ;
3、数组元素作为函数的参数进行数据传递:
1)数组元素(下表变量)做函数的实参使用,就是值传递与普通变量没区别;
2)数组名做为函数的形参和实参使用,函数实参必须是数组,是地址传递使用实参数组内存空间。
A、形参实参类型必须一致;
B、长度可以不相同,形参长度可以省略;
C、所有数组类形参长度都是8字节。
4、 一维数组
1)元素是基本数据类型变量不是数组的数组,称为一维数组;
2)一维数组定义:类型说明符 数组名 [常量表达式];
A:类型说明符:是任一种基本数据诶性或构造数据类型;
B:数组名:用户定义的标识符,不能和其他变量同名;
C: 常量表达式:表示数据元素的个数,也称为数组的长度,数组长度可以使用宏定义(xcode允许使用常变量描述长度);
3)一维数组的初始化 :给每一个元素赋初值,如果没有初始化是垃圾值
A:定义同时初始化 ,完全初始化可以不写长度,部分初始化其他元素值为0;
B:先定义后初始化 ,部分初始化不会使其他元素值赋值0;
4)一维数组的引用 :数组名[下标]就可以当问数组的元素;
5)一维数组存储方式:
A、计算机先分配连续的存储空间;
B、数组名存放数组的首地址,是一个被定义的常量,数组空间依次存储1-n个元素;
C、每个元素占用相同的字节数;
D、并且元素之间的地址连续。
E、一维数组计算下标地址:数组名+sizeof(数组类型)*下标
F、一维数组元素数=sizeof(数组名)/sizeof(数组类型)
G、一维数组越界
5、冒泡排序(bubble sort)
1)比较相邻元素
2)大数下沉,小数上浮
3)void maoPao(int a[],int n) {
int t=0
for (int i=0;i<n-1;i++) {
for (int j=0;j<n-1-i;j++) {
if (a[j]>a[j-1]) {
t=a[j];
a[j]=a[j-1];
a[j-1]=a[j];
}
}
}
}
|
|