1、 数组的基本概念一维数组二维数组字符数组数组的应用举例第七章 数 组一、概述C数据类型: 基本类(简单类) 字符型 /整型 /实型构造类(组合类) 数组 /结构体 /共用体对于变量基本类型 单个出现的变量,每个变量可以代表一个确定的数据(变量值),且具有一定属性。如 int x,y;但变量间不存在确定的相互关系。数组的概念引入用基本数据类型可以解决所有问题吗?例如: 对某班学生的成绩按由高到底的次序进行排序。3 名?30 名?数组:一种常用的构造型数据类型。由具有固定数目相同类型 的元素按一定顺序排列。 数组的基本概念特点:1、数组元素的个数是确定,不可改变,元素值可变2、 数组元素的类型必须
2、相同,不允许混合。1、 一维数组的定义和使用可以是 常量 和 符号常量 ,且必须为正值 ,表示数组元素的个数。不能包含变量。数组名的构成方法与一般变量名相同。例如: int a10数组的数据类型 定义类型说明符 数组名 常量表达式 ;10个元素: a0、 a1、 a2.a9整型数组 a特别申明:不可对数组的大小作动态定义判断错误: 正确: int n=5; #define N 5int an; int aN;正确:int a10, b54;char name8, ch23;float x8*2+1, table234;#define NUM 40;int aNUM, bNUM+2; 7.1.2
3、 一维数组元素的引用1、 先定义,后使用。3、 只能逐个引用数组元素,而不能一次引用整个数组可以是整型常量或整型表达式2、 引用方式: 数组名 下标 。例: int a9; char c4; float f10;a0=1; c3=b; f5=1.23a8=a5+a7-a2*34、 引用数组元素要注意下标不要出界(编译程序不检查是否“ 出界 ” )示例引用示例: a23 a2-12*3-1 ax (x为整型表达式 )错误: a2,3比较:错误 正确int n; int a5;scanf(“%d”, for (i=0;i5;i+)int an; printf(“%dn”,ai);定义时不可用变量作
4、下标 引用时可以用整型变量及表达式作下标三、数组的存储结构根据数组的数据类型,为每一元素安排相同长度的存储单元根据数组的存储属性,确定将其安排在内存动态、静态存储区或寄存器区a0a1a92字节 name0name1name71字节 4字节 x0x1x72字节 1字节 4字节 2字节 1字节 4字节int a10 char name8 static float x8动态存储区 静态存储区说明:数组元素在内存中顺次存放,它们的地址是连续的。数组名字是一个常量,存放数组第一个元素的内存地址。定义时赋值 一维数组的初始化1、 对数组的全部元素赋初值。int a3=3,6,9; a0=3; a1=6; a2=9;2、 对数组的部分元素赋初值。int a4=3,6,9 ; a0=3; a1=6; a2=9; a3=0;3、 对全部数组元素赋初值时,可以不指定数组长度。但若提供 初值的个数与定义的数组长度不一样,则数组长度不能省略。int a=3,6,9; int a3; a0=3; a1=6; a2=9;对数组的元素赋初值。方式:赋值语句、输入语句a0=12;scanf(“ %d ”,注意:不能给数组整体赋初值数组名不可被赋值 。