〔语言序设计 第七章数组 任课老师:台安
第七章 数组 任课老师:台安
第七章数组 数组:数组是一组有序数据的集合,数组中每 个元素的类型相同。数组是构造类型,元素 由基类型(整、实、字符)组成。用数组名和 下标来唯一确定数组中的元素 7.1维数组的定义和引用 72二维数组的定义和引用 7.3字符数组 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 第七章 数组 ❖ 数组:数组是一组有序数据的集合,数组中每 一个元素的类型相同。数组是构造类型,元素 由基类型(整、实、字符)组成。用数组名和 下标来唯一确定数组中的元素 ❖ 7.1 一维数组的定义和引用 ❖ 7.2 二维数组的定义和引用 ❖ 7.3 字符数组
要求 令1、数组名、数组元素的概念 2、数组的初始化方法, 3、数组元素在内存中的存储顺序。 令4、数据排序算法。 令5、字符串的特点 6、字符串处理函数的应用。 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 要求: ❖ 1、数组名、数组元素的概念。 ❖ 2、数组的初始化方法。 ❖ 3、数组元素在内存中的存储顺序。 ❖ 4、数据排序算法。 ❖ 5、字符串的特点 ❖ 6、字符串处理函数的应用
§71一维数组的定义和引用 71.1一维数组的定义 ◆形式类型说明符数组名常量表达式 如:inta5]; float b[1l0] 说明: 1命名规则:数组名是由合法的标识符组成 冷2.数组名后的括号[]内是常量表达式 例:inta[10 定义一个数组,数组名a,有10个元素,每个元素 的类型均为int。 冷这10个元素分别是:a[0、a[1]、a[2]、aB3]、 a[8]、a[9]。注意:下标是从零开始 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 §7.1 一维数组的定义和引用 ❖ 7.1.1 一维数组的定义 ❖ 形式:类型说明符 数组名[常量表达式] ❖ 如:int a[5]; float b[10]; ❖ 说明: ❖ 1.命名规则:数组名是由合法的标识符组成。 ❖ 2.数组名后的括号 [ ] 内是常量表达式 ❖ 例: int a[10] ❖ 定义一个数组,数组名a,有10个元素,每个元素 的类型均为int。 ❖ 这10个元素分别是:a[0]、a[1]、a[2]、a[3]、 a[4]、....、a[8]、a[9]。注意:下标是从零开始
例: 令说明以下数组的定义是否正确? nta[2+3],b[5],c[a'],d[8] inta(10),b{,%[5],8[3J,ⅹ-y[50],5X[100 int 15; int a 5+1 3数组的长度 int a [5] a0],a[1]la[2],a[3],a[4] 5个元素,下标从0~4 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 例: ❖ 说明以下数组的定义是否正确? int a[2+3], b[5], c[‘a’] , _d[8] int a(10) , b[x], %[5], 8[3], x-y[50], 5x[100] int i=5; int a[5+i] ❖ 3.数组的长度 int a[5] a[0], a[1], a[2], a[3], a[4] 5个元素 ,下标从0 ~ 4
例71 main() 运行结果: a0=l fint 1, a 5 a[l=2 a2]=3 for(=0;1<=4;1++) a {ai]=i+1 printf ( al%d-%dn”,i,aj) 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 例7.1 ❖ main( ) ❖ {int i, a[5]; ❖ for(i=0;i<=4;i++) ❖ { a[i]= i+ 1 ; ❖ printf (“a[%d]=%d\ n”, i, a[i]); ❖ } ❖ } 运行结果: a[0]=1 a[1]=2 a[2]=3 a[3]=4 a[4]=5
4数组大小的定义只能是常量,而不能是变量 或动态地定义 例72 注意 (1)C语言中,数组下标从0开始 main( (2)C语言不允许对数组的大小做动 态定义,如: f int n=5, an a[1]=100; printf(a[l=oodn'aLID 编译时指出: constant expression required in function main(主函数 中要求常量表达式) 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 4.数组大小的定义只能是常量,而不能是变量 或动态地定义。 例7.2: main( ) { int n=5, a[n]; a[1]=100; printf (“a[1]=%d\n”,a[1]); } 编译时指出:constant expression required in function main (主函数 中要求常量表达式) 注意: (1)C语言中,数组下标从0开始. (2)C语言不允许对数组的大小做动 态定义,如:
71.2一维数组元素的引用 令引用规则 1先定义,后使用。 2引用形式:数组名[下标] 3.下标可以是整、字符型的常量、变量或表 达式。 3引用方法:对具体元素而不是整个数组。如 int a[10] a[0]=a[b-a]+a[b3-96]+a[3]-a[2*2 相当于 a[0]=a[1]+a[2]+a[3}-a[4] 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 7.1.2 一维数组元素的引用 ❖ 引用规则: 1.先定义,后使用。 2.引用形式:数组名[下标] 3.下标可以是整、字符型的常量、变量或表 达式。 ❖ 3.引用方法:对具体元素而不是整个数组。 如: int a[10] a[0]=a[‘b’ - ‘a’] + a[‘ b’ -96] +a[3] - a[2*2] 相当于: a[0]=a[1]+ a[2]+ a[3]- a[4]
例73:对数组a顺序赋值,逆序输出 main() i int 1, a5 for(i=0;j=0 orin ntf("a[%d= a 运行结果: a4]=4a[3}=3a[2]=2a[l=1a[0 上一页下一页返回 第七章数组
上一页 下一页 返回 第七章 数组 例7.3:对数组a 顺序赋值,逆序输出 main( ) { int i, a[5]; for(i=0; i=0;i- -) printf( “a[%d]=%d\t”, i, a[i ]); } 运行结果: a[4]=4 a[3]=3 a[2]=2 a[1]=1 a[0]=0
71.3一维数组的初始化 实现的方法有: 1定义时对数组元素初始化 如: static int a[5}={1,2,3,4,5}; 2.初始化时只给部分元素赋值 如:inta[5]}={1,3,5};则只对前三个元素赋初值 ◆3.初始化时给全部元素赋0值 tI: static int a 51=10,0,0,0, 0) 或 static int a](静态型数组自动赋初值零) 4.对全部元素赋初值时可以不指出长度如 static int a5=( 2, 4,6,8,10) 或 static int a[]={2,46.8,10};效果一样 错例: static int b[j;没有指出长度,为无效定义。*/ 上一页下一页 返回 第七章数组
上一页 下一页 返回 第七章 数组 7.1.3 一维数组的初始化 实现的方法有: ❖ 1.定义时对数组元素初始化 如:static int a[5]={1, 2, 3, 4, 5}; ❖ 2. 初始化时只给部分元素赋值 如: int a[5]={1, 3, 5}; 则只对前三个元素赋初值 ❖ 3. 初始化时给全部元素赋0值 如: static int a[5]={0,0,0,0,0}; 或 static int a[5] (静态型数组自动赋初值零) ❖ 4. 对全部元素赋初值时可以不指出长度 如: static int a[5]={2,4,6,8,10}; 或 static int a[ ]={2,4,6,8,10}; 效果一样。 错例:static int b[ ]; /*没有指出长度,为无效定义。*/