一、一维数组
(一)、定义
int a[5];
定义一个有5个int型元素的数组:系统在内存分配连续的5个int空间给此数组。数组元素下标为0-4
直接对a的访问,就是访问此数组的首地址。注意:数组名表示数组首地址,常量,值不可改变
数组大小必须是值为正的常量。
#define SIZE 5//建议
int a[SIZE];
(二)、初始化
数组定义后的初值是随机数
int a[5] = {12, 34, 56 ,78 ,9};//定义了有5个元素的数组a并初始化
int a[5] = {0};定义了有5个元素的数组a并初始化了第一个元素
int a[] = {11, 22, 33, 44};//定义了数组a并初始化了4个元素,于是数组a有4个元素。
(三)、引用
数组名 [下标]
数组下标都是从0开始
下标既可是常量,也可是整型表达式,允许快速随机访问,如a[i]。和普通变量一样。
如何使2个数组值相等?
//方法1:逐个元素赋值
b[0]=a[0];
b[1]=a[1];
b[2]=a[2];
b[3]=a[3];
b[4]=a[4];
//方法2:通过循环赋值
int i;
for (i=0;i<5;i++)
b[i] = a[i];
· 下标不可越界
(四)、向函数传递一维数组
传递整个数组给另一个函数,可将数组的首地址作为参数传过去,用数组名作函数参数。
只复制一个地址自然比复制全部数据效率高
由于首地址相同,故实参数组与形参数组占用同一段内存
该函数内,这个数组的元素可读可修改
二、二维数组
···比较
1)一维数组
int a[5]; //用一个下标确定各元素在数组中的顺序,可用排列成一行的元素组来表示
2)二维数组
int a[233][233];//两个下标,可用排列成i行,j列的元素组来表示
3)n维数组
用n个下标来确定各元素在数组中的顺序
int c[3][2][4];//3维数组
n≥3时,无法在平面上表示其各元素的位置
三、数组的数据类型和存储类型
根据数组的数据类型,为每一元素安排相同长度的存储单元
根据数组的存储类型,将其安排在内存的动态存储区、静态存储区或寄存器区
用sizeof(a)来获得数组a所占字节数
1、二维数组的存放顺序:按行存放