本章要点 什么是数组?为什么要使用数组?如何定义数组? 如何引用数组元素? 二维数组的元素在内存中按什么方式存放? 什么是字符串?字符串结束符的作用是什么? 如何实现字符串的存储和操作,包括字符串的输 入和输出? 怎样理解C语言将字符串作为一个特殊的一维字符 数组?
本章要点 ◼ 什么是数组? 为什么要使用数组? 如何定义数组? ◼ 如何引用数组元素? ◼ 二维数组的元素在内存中按什么方式存放? ◼ 什么是字符串? 字符串结束符的作用是什么? ◼ 如何实现字符串的存储和操作,包括字符串的输 入和输出? ◼ 怎样理解C语言将字符串作为一个特殊的一维字符 数组?
7.1一维数组 7.1.1程序解析 7.1.2一维数组的定义和引用 7.1.3一维数组的初始化 7.1.4使用一维数组编程
7.1.1 程序解析 7.1.2 一维数组的定义和引用 7.1.3 一维数组的初始化 7.1.4 使用一维数组编程 7.1 一维数组
7.1.1程序解 #include main() main() int x[10],i,max,min; int x,i,max,min; printf("Enter 10 integers:\n"); printf("Enter 10 inte for(i=0;ix[i])min-x[i]; if(min>a) min-a; } printf("Maximum value is %d n",max); printf("Maximum va printf("Minimum value is %d n",min); printf("Minimum va)
例 读入10个整数,找出其中最大值和最小值 #include main() { int x,i,max,min; printf("Enter 10 integers:\n"); scanf("%d",&a); max=min=a; for(i=1;ia) min=a; } printf("Maximum value is %d\n",max); printf("Minimum value is %d\n",min); } #include main() { int x[10],i,max,min; printf("Enter 10 integers:\n"); for(i=0;ix[i]) min=x[i]; } printf("Maximum value is %d\n",max); printf("Minimum value is %d\n",min); } 7.1.1 程序解析
for(i=0;i<n;i++) printf("%d "ali]); 数组 012 9 a 3 2 81 2289 0 -1 7 a[0]a[1] a[9] 数组:相同类型数据的有序集合,在内存中连续存放。 由数组名和下标惟一地确定每个数组元素 每个元素都属于同一类型 一批相同类型的变量使用同一个数组变量名,用下标 来相互区分。 优点:表述简洁,可读性高;便于使用循环结构
for(i = 0; i < n; i++) printf("%d ", a[i]); 数组:相同类型数据的有序集合,在内存中连续存放。 – 由数组名和下标惟一地确定每个数组元素 – 每个元素都属于同一类型 一批相同类型的变量使用同一个数组变量名,用下标 来相互区分。 优点:表述简洁,可读性高;便于使用循环结构 数组 0 1 2 9 a[0] a[1] a[9] a 3 5 2 8 1 22 89 0 -1 7
7.1.2一维数组的定义和引用 1、定义 类型名数组名[数组长度] 类型名:数组元素的类型 数组名:数组(变量)的名称,标识符 数组长度:常量表达式,给定数组的大小,数组元素的个数 int a[10]; 定义一个含有10个整型元素的数组a char c[200]; 定义一个含有200个字符元素的数组c float f[5]; 定义一个含有5个浮点型元素的数组f
7.1.2 一维数组的定义和引用 1、定义 类型名 数组名[数组长度] 类型名:数组元素的类型 数组名:数组(变量)的名称,标识符 数组长度:常量表达式,给定数组的大小,数组元素的个数 int a[10]; 定义一个含有10个整型元素的数组 a char c[200]; 定义一个含有200个字符元素的数组 c float f[5]; 定义一个含有5个浮点型元素的数组 f
2、引用 ■先定义,后使用 ■只能引用单个的数组元素,不能一次引用整个数组 数组名[下标] 下标:整型表达式,取值范围:[0,数组长度-1] int a[10]; 下标不要越界 10个元素:a[0]、a[1].a[9] 不能使用a[10] ■数组元素的使用方法与同类型的变量相同 scanf("%d",&a[i]); temp a[index];a[index]=a[k];a[k]=temp; printf("%d "ali]);
2、引用 ◼ 先定义,后使用 ◼ 只能引用单个的数组元素,不能一次引用整个数组 数组名[下标] 下标:整型表达式,取值范围:[0,数组长度-1] int a[10]; 10个元素:a[0]、a[1]、…… a[9] ◼ 数组元素的使用方法与同类型的变量相同 scanf("%d", &a[i]); temp = a[index]; a[index]= a[k]; a[k] = temp; printf("%d ", a[i]); 下标不要越界 不能使用a[10]
7.1.3一维数组的初始化 定义数组时,对数组元素赋初值 类型名数组名[数组长度]=初值表; inta[10]={1,2,3,4,5,6,7,8,9,10; a[0]=1,a[1]=2,..a[9]=10 静态数组、动态数组的初始化 static int b[5]{1,2, 静态存储的数组如果没有初始 化,所有元素自动赋0 static int b[5]; 动态存储的数组如果没有初始 auto int c[5]; 化,所有元素为随机值
7.1.3 一维数组的初始化 ◼ 定义数组时,对数组元素赋初值 类型名 数组名[数组长度] = {初值表}; int a[10] = {1,2,3,4,5,6,7,8,9,10}; a[0]=1, a[1]=2,...… a[9]=10 ◼ 静态数组、动态数组的初始化 static int b[5] = {1, 2, 3, 4, 5}; static int b[5]; auto int c[5]; 静态存储的数组如果没有初始 化,所有元素自动赋0 动态存储的数组如果没有初始 化,所有元素为随机值
针对部分元素的初始化 static int b[5]{1,2,3); b[0]=1,b[1]=2,b[2]=3,b[3]=0,b[4=0 auto int fib[20]{0,1}; fib[0]=0,fib[1]=1,其余元素不确定 ■如果对全部元素都赋初值,可以省略数组长度 inta[10]={0,1,2,3,4,5,6,7,8,9} 建议不要省略数组长度
static int b[5] = {1, 2, 3}; b[0] = 1, b[1] = 2, b[2] = 3, b[3] = 0, b[4] = 0 auto int fib[20] = {0, 1}; fib[0] = 0, fib[1] = 1, 其余元素不确定 ◼ 如果对全部元素都赋初值,可以省略数组长度 int a[ 10 ] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 针对部分元素的初始化 建议不要省略数组长度