国 上岸充通大 006 C++程序设计与实践 第4讲 数组与结构 上海交通大学 机械与动力工程学院 2014.9-2015.1 上充通大¥ 1896 1920 1.数组概念 2.一维数组 3.二维数组 4.字符数组/字符串 5.结构 1日 1
1 C++程序设计与实践 上海交通大学 机械与动力工程学院 2014.9-2015.1 第4讲 数组与结构 1. 数组概念 2. 一维数组 3. 二维数组 4. 字符数组/字符串 5. 结构
圈上文大华 数组概念 为什么要引入数组? 例1.考虑要处理2012年上海的气温数据,如计算平均气温、查 找最高气温与最低气温,如何用程序实现? +高是r口+品问 0000000 G 000 292g224w装深深202 floatT11:/2012年1月1日气温 float T[365];∥用数组描述天气 float T12:2012年1月1日气温 float T1231;/2012年12月31日气温 数组是处理大量同类数据 的有效工具。 3/50 圈上涤夫大学 数组概念 为什么要引入数组? 例2.根据座位在影院中不同位置,确定票价? float Price[5][8]; 数组可以方便地用作有些 现实问题的模型。 4/50 2
2 3/50 为什么要引入数组? 例1. 考虑要处理2012年上海的气温数据,如计算平均气温、查 找最高气温与最低气温,如何用程序实现? float T1_1;//2012年1月1日气温 float T1_2;//2012年1月1日气温 …… float T12_31;//2012年12月31日气温 float T[365];//用数组描述天气 数组是处理大量同类数据 的有效工具。 数组概念 4/50 为什么要引入数组? 例2. 根据座位在影院中不同位置,确定票价? float Price[5][8]; 数组可以方便地用作有些 现实问题的模型。 数组概念
圈上海文通大华 数组概念 什么是数组? 数组是具有一定顺序关系的若干相同类型变量 的集合体,组成数组的变量称为该数组的元素。 例如: f1oatf[50]:/浮点数数组,50个元素 char name[20]:/∥字符型数组,19+1个元素 intn[20][100;/整型数组,2000个元素 5/50 上泽克大¥ 1896 2005 1. 数组概念 2.一维数组 3.二维数组 4.字符数组/字符串 5.结构 SH 1日 3
3 5/50 数组概念 什么是数组? 数组是具有一定顺序关系的若干相同类型变量 的集合体,组成数组的变量称为该数组的元素。 float f[50]; //浮点数数组,50个元素 char name[20]; //字符型数组,19+1个元素 int n[20][100];//整型数组,2000个元素 …… 例如: 1. 数组概念 2. 一维数组 3. 二维数组 4. 字符数组/字符串 5. 结构
圆上泽文大学 一维数组 维数组的声明与引用 一维数组的声明 类型说明符 数组名[常量表达式]; 例如: int a[10]; 表示a为整型数组,有10个元素:a[0]..a[9] >引用(赋值) 数组名[下标表达式] >必须先声明,后使用。 >只能逐个引用数组元素,而不能一次引用整个数组 例如:a0]=a5]+a[7a2*3;a81=16:☑ a[10]=16:a=12;☒ 7/150 圈上泽夫道大学 维数组 一维数组的存储顺序 数组元素在内存中顺次存放,它们的地址是连续的。 例如:具有10个元素的数组,在内存中的存放次序如下: a a[o]a[1]a2]a[3]a4]a[5]a[6]a7]a[8]a[9] 数组名字是数组直元素的内存地址。 数组名是一个常量,不能被赋值。 8/50
4 7/50 一维数组 一维数组的声明与引用 一维数组的声明 类型说明符 数组名[ 常量表达式 ]; 例如: int a[10]; 表示 a 为整型数组,有10个元素:a[0]...a[9] 引用(赋值) 数组名[下标表达式 ] 必须先声明,后使用。 只能逐个引用数组元素,而不能一次引用整个数组 例如:a[0]=a[5]+a[7]-a[2*3];a[8] = 16; a[10] = 16; a = 12; 8/50 一维数组 一维数组的存储顺序 a a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 数组名字是数组首元素的内存地址。 数组名是一个常量,不能被赋值。 数组元素在内存中顺次存放,它们的地址是连续的。 例如:具有10个元素的数组 a,在内存中的存放次序如下:
圈上泽文通大华 一维数组 一维数组的初始化 可以声明数组时使数组得到初值: >在声明数组时对数组元素赋以初值。 例如:inta10={0,1,2,3,4,5,6,7,8,9; >可以只给一部分元素赋初值。 例如:inta10={0,1,2,3,4}; >在对全部数组元素赋初值时,可以不指定数组长度。 例如:inta={1,2,3,4,5; 9/50 圆上泽夫通大学 维数组 例1一维数组的声明与引用 #include <iostream> for(i=0:i<l0:i++) using namespace std; void main() cout<<"A["<<i {intA[10],B[10l <"]="<A[; int i; cout<<"B["<<i for(i=0;i<l0;i++) <"]=" <<B[i]<<endl; A[i]=i*2-1; B[10-i1]=A[; 10/50 5
5 9/50 一维数组 一维数组的初始化 可以声明数组时使数组得到初值: 在声明数组时对数组元素赋以初值。 例如: int a[10]={0,1,2,3,4,5,6,7,8,9}; 可以只给一部分元素赋初值。 例如: int a[10]={0,1,2,3,4}; 在对全部数组元素赋初值时,可以不指定数组长度。 例如: int a[]={1,2,3,4,5}; 10/50 一维数组 例1 一维数组的声明与引用 #include <iostream> using namespace std; void main() { int A[10],B[10]; int i; for(i=0;i<10;i++) { A[i]=i*2-1; B[10-i-1]=A[i]; } for(i=0;i<10;i++) { cout<<"A["<<i <<"]="<<A[i]; cout<<" B["<<i <<"]=" <<B[i]<<endl; } }