第4章数组 白雪飞 baixfaustc. edu.cn 中国科学技术大学电子科学与技术系 Dept of Elec. Sci. Tech, USTC Fal22003
白 雪 飞 baixf@ustc.edu.cn 中国科学技术大学电子科学与技术系 Dept. of Elec. Sci. & Tech., USTC Fall, 2003 第4章 数 组
录 数组的概念 维数组 维数组 字符数组 C语言程序设计-第4章数组2
C语言程序设计 - 第4章 数组 2 目 录 ⚫ 数组的概念 ⚫ 一维数组 ⚫ 二维数组 ⚫ 字符数组
数组(Aray) 概念 有序数据的集合 说明 ■数组中的每一个元素都属于同一数据类型 ■用统一的数组名和下标来唯一的确定数组中 的元素 ■数组元素的类型可以是基本类型或导出类型 C语言程序设计-第4章数组
C语言程序设计 - 第4章 数组 3 数组 (Array) ⚫ 概念 ◼ 有序数据的集合 ⚫ 说明 ◼ 数组中的每一个元素都属于同一数据类型 ◼ 用统一的数组名和下标来唯一的确定数组中 的元素 ◼ 数组元素的类型可以是基本类型或导出类型
维数组 维数组的定义 一维数组元素的引用 维数组的存储形式 维数组的初始化 维数组程序举例 C语言程序设计-第4章数组4
C语言程序设计 - 第4章 数组 4 一维数组 ⚫ 一维数组的定义 ⚫ 一维数组元素的引用 ⚫ 一维数组的存储形式 ⚫ 一维数组的初始化 ⚫ 一维数组程序举例
维数组的定义 定义形式 类型数组名[常量表达式]; 说明 ■常量表达式表示数组的大小(元素个数) 数组大小只能是常量,不能包含变量 ■整型数组与整型是两种不同的数据类型 举例 ■inta[100],b[3*2]; C语言程序设计-第4章数组5
C语言程序设计 - 第4章 数组 5 一维数组的定义 ⚫ 定义形式 ◼ 类型 数组名[常量表达式]; ⚫ 说明 ◼ 常量表达式表示数组的大小(元素个数) ◼ 数组大小只能是常量,不能包含变量 ◼ 整型数组与整型是两种不同的数据类型 ⚫ 举例 ◼ int a[100], b[3*2];
维数组元素的引用 引用形式 数组名[下标] 说明 下标是整型表达式 ■数组元素与同类型的变量使用方法相同 数组下标范围为0~N-1N为数组长度) 注意防止数组下标越界 ●举例 ■a[0]=a[5]+a[j]*3; C语言程序设计-第4章数组6
C语言程序设计 - 第4章 数组 6 一维数组元素的引用 ⚫ 引用形式 ◼ 数组名[下标] ⚫ 说明 ◼ 下标是整型表达式 ◼ 数组元素与同类型的变量使用方法相同 ◼ 数组下标范围为0~N-1(N为数组长度) ◼ 注意防止数组下标越界 ⚫ 举例 ◼ a[0]=a[5]+a[j]*3;
维数组的存储形式 维数组的元素在内存中依次连续存储 低地址 a[0] char a[51 a[2] a[3] a[4] 高地址 C语言程序设计-第4章数组
C语言程序设计 - 第4章 数组 7 一维数组的存储形式 ⚫ 一维数组的元素在内存中依次连续存储 低地址 ... a[0] a[1] a[2] a[3] a[4] 高地址 ... char a[5];
维数组的初始化 定义数组时对数组元素赋初值 inta[5]={1,2,3,4,5}; 。只给部分元素赋初值 ■inta[5]={1,2,3}; ■inta[5]={0}; ■其余元素初值为零 对全部元素赋初值时,可以不指定长度 ■inta[]={12,3,4,5}; C语言程序设计-第4章数组8
C语言程序设计 - 第4章 数组 8 一维数组的初始化 ⚫ 定义数组时对数组元素赋初值 ◼ int a[5]={1,2,3,4,5}; ⚫ 只给部分元素赋初值 ◼ int a[5]={1,2,3}; ◼ int a[5]={0}; ◼ 其余元素初值为零 ⚫ 对全部元素赋初值时,可以不指定长度 ◼ int a[]={1,2,3,4,5};
维数组程序举例 ° Fibonacci数列 F,=F=1 E=P,+ Fn=1(n≥3) 冒泡排序法 筛法求素数 C语言程序设计-第4章数组9
C语言程序设计 - 第4章 数组 9 一维数组程序举例 ⚫ Fibonacci数列 ⚫ 冒泡排序法 ⚫ 筛法求素数 ( 3) 1 2 1 1 2 = + = = F F − F − n F F n n n
例1: Fibonacci数列(04-01.c include void main () inti,f[20]={1,1}; for(i=2;i<20;立++) f[i]=f[i-2]+E[i-1]; C语言程序设计-第4章数组10
C语言程序设计 - 第4章 数组 10 例1:Fibonacci数列 (04-01.C) #include void main() { int i, f[20]={1, 1}; for (i=2; i<20; i++) f[i] = f[i-2] + f[i-1]; }