C语言程序设计(第2版) 中南大学出版社 成奋华陈松乔著 第六章数组应用汁 授课老师:危孟君S Email:weimengjun@163.com
第六章 数组应用程序设计 授课老师: 危孟君 Email: weimengjun@163.com C语言程序设计(第2版) 中南大学出版社 成奋华 陈松乔 著
预备知识 1、基本类型数据(整型、字符型、长整型 布尔型、浮点型……) 2、构造类型数据(结构类型、 3、三种程序结构(顺序,选择,循环) 4、内存存储方式(内存地址…)
预 备 知 识 1、基本类型数据(整型、字符型、长整型、 布尔型、浮点型……) 2、构造类型数据(结构类型、……) 3、三种程序结构(顺序,选择,循环) 4、内存存储方式(内存地址……)
数组 构造数据类型之一,一组有序数据的集合用数[]数组运算符 元素属同一数据类型,用数组名和下标确定单目运算符 §6.1一维数组 优先级(1) 不能用() 维数组的定义 今定义方式:数据类型数组名[常量表达式]; 例inta[6]; 合法标识符 表示元素个数 下标从0开始 a a[0] a[1] a[2] a[3] 编译时分配连续内存 数组名表示内存首地 内存字节数 a[4] 址,是地址常量 数组元素个数* sizeof(元素类型) [5]
•构造数据类型之一,一组有序数据的集合,用数组名标识 •元素:属同一数据类型,用数组名和下标确定 §6.1 一维数组 一维数组的定义 ❖定义方式: 数据类型 数组名[常量表达式]; 合法标识符 表示元素个数 下标从0开始 [ ]数组运算符 单目运算符 优先级(1) 不能用( ) 例 int a[6]; 0 a[0] 1 4 5 a[1] a[2] a[3] a[4] a[5] 2 3 a 编译时分配连续内存 内存字节数 =数组元素个数* sizeof(元素类型) 数组名表示内存首地 址,是地址常量 数 组
例 int data[5]; data[5]=10;//C语言对数组不作越界检查,使用时要注意 组的引用 数组必须 只能逐个引用数组元素,不能一次引用整个数组 数组元素表示形式:数组名[下标] 其中:下标可以是常量或整型表达式 例 inta[5]={1,2,3,4,5}; Printf(“%d”,a[1]);(正确 printf(“%d”,b[1])(变量未定义) 例inta[10] printf(“%d”,a) 必须for(j=0;j10;j++) printf(“%d\t”,a[Jj);()
一维数组的引用 ❖数组必须先定义,后使用 ❖只能逐个引用数组元素,不能一次引用整个数组 ❖数组元素表示形式: 数组名[下标] 其中:下标可以是常量或整型表达式 例 int i=15; int data[i]; (不能用变量定义数组元素个数) 例 int a[10]; printf(“%d”,a); () 必须for(j=0;j<10;j++) printf(“%d\t”,a[j]);() 例 int data[5]; data[5]=10; //C语言对数组不作越界检查,使用时要注意 例 int a[5]={1,2,3,4,5}; Printf(“%d”,a[1]);(正确) printf(“%d”,b[1])(变量未定义)
维数组的初始化 初始化方式 inta[5]={1,2,3,4,5} 等价于a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5; 说明: 数组不初始化,其元素值为随机数,值不确定。 对 static数组元素不赋初值,系统会自动赋以0值 只给部分数组元素赋初值 当全部数组元素赋初值时,可不指定数组长度 tat inta[]={1,2,3,4,5,6} 编译系统根据初值个数确定数组维数 等价于:aU06;aL=z;aL2」=3;aL3;at4=0 如 inta[3]={6,2,3,5,1
一维数组的初始化 ❖初始化方式 在定义数组时,为数组元素赋初值 (在编译阶段使之得到初值) int a[5]={1,2,3,4,5}; 等价于a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5; 说明: 数组不初始化,其元素值为随机数,值不确定。 对static数组元素不赋初值,系统会自动赋以0值 当全部数组元素赋初值时,可不指定数组长度 如 int a[5]={6,2,3}; 等价于:a[0]=6;a[1]=2;a[2]=3;a[3]=0;a[4]=0; 如 int a[3]={6,2,3,5,1}; () static int a[5]; 等价于:a[0]=0; a[1]=0; a[2]=0; a[3]=0; a[4]=0; 只给部分数组元素赋初值 int a[]={1,2,3,4,5,6}; 编译系统根据初值个数确定数组维数