C++语言程序设计 第六章数组指针与字爷串 湖南科技大学莫尚丰
第六章 数组 指针与字符串 湖南科技大学 莫尚丰 C++语言程序设计
C++语言程序设计 湖南科技大学 本章主要内率 数组 ●指针 动态存储分配 指针与数组 指针与函数 ●字符串
C++语言程序设计 湖南科技大学 2 本章主要内容 ⚫ 数组 ⚫ 指针 ⚫ 动态存储分配 ⚫ 指针与数组 ⚫ 指针与函数 ⚫ 字符串
C++语言程序设计 湖南科技大学 数组的概念 数 数组是具有一定顺序关系的若干相 同类型变量的集合体,组成数组的变量 组称为该数组的元素。 3
C++语言程序设计 湖南科技大学 3 数组的概念 数组是具有一定顺序关系的若干相 同类型变量的集合体,组成数组的变量 称为该数组的元素。 数 组
C++语言程序设计 湖南科技大学 维数组的声明与引用 数 维数组的声明 类型说明符数组名「常量表达式1 组数组名的构成方法与一般变量名相同 例如:inta[10] 表示a为整型数组,有10个元素:a[0]...a[9] ●引用 必须先声明,后使用。 只能逐个引用数组元素,而不能一次引用整个数组 例如:a[0]=a[5]+a[7]-a[2*3]√
C++语言程序设计 湖南科技大学 4 一维数组的声明与引用 ⚫ 一维数组的声明 类型说明符 数组名[ 常量表达式 ]; 例如:int a[10]; 表示 a 为整型数组,有10个元素:a[0]...a[9] ⚫ 引用 必须先声明,后使用。 只能逐个引用数组元素,而不能一次引用整个数组 例如:a[0]=a[5]+a[7]-a[2*3] √ 数组名的构成方法与一般变量名相同。 数 组
C++语言程序设计 明南科技大学 例6.1一维数组的声明与引用 数 include for(i=0; 1<10; i++) using name space std int main O 组intA[10],B[10] cout<< AL<<i <<]="<A[i]; nt 1. for(i=0;i<10;i++) cout<<"B["<i<”]= <<BLi]<<end1 A[i]=i*2-1 B[10-i-1]=A[i]
C++语言程序设计 湖南科技大学 5 例6. 1一维数组的声明与引用 #include using namespace std; int 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; } }
C++语言程序设计 湖南科技大学 自数组的存储顺序 数 数组元素在内存中顺次存放,它们的地址是连 续的 例如:具有10个元素的数组a,在内存 组 中的存放次序如下: aa0]a[]a2]a[3]a[4]a[5]a6]a7]a[81a[9 数组名是数组首元素的内存地址。 数组名是一个當量,不能被赋值
C++语言程序设计 湖南科技大学 6 一维数组的存储顺序 数组元素在内存中顺次存放,它们的地址是连 续的。 例如:具有10个元素的数组 a,在内存 中的存放次序如下: 数组名是数组首元素的内存地址。 数组名是一个常量,不能被赋值。 a a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8]a[9] 数 组
C++语言程序设计 湖南科技大学 维数组的初始化 可以在编译阶段使数组得到初值: 数 在声明数组时对数组元素赋以初值。 组例如 static int a[10]={0,1,2,3,4,5,6,7,8,9}; 可以只给一部分元素赋初值。 例如: static int a[10]={0,1,2,3,4}; 在对全部数组元素赋初值时,可以不指定数 组长度。 例如: static int al={1,2,3,425}
C++语言程序设计 湖南科技大学 7 一维数组的初始化 可以在编译阶段使数组得到初值: –在声明数组时对数组元素赋以初值。 例如:static int a[10]={0,1,2,3,4,5,6,7,8,9}; –可以只给一部分元素赋初值。 例如:static int a[10]={0,1,2,3,4}; –在对全部数组元素赋初值时,可以不指定数 组长度。 例如:static int a[]={1,2,3,4,5} 数 组
C++语言程序设计 明南科技大学 例:用数组来处理求 Fibonacci数列问题 #include using namespace std; int maino i int i static int f[20]={1,1};//初始化第0、1个数 for(i=2;i<20;i++)//求第2~19个数 f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++)//输出,每行5个数// I if(i%5==0) cout<<endl cout. width(12);//设置输出宽度为12 cout<<flil
C++语言程序设计 湖南科技大学 8 #include using namespace std; int main() { int i; static int f[20]={1,1};//初始化第0、1个数 for(i=2;i<20;i++) //求第2~19个数 f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) //输出,每行5个数// { if(i%5==0) cout<<endl; cout.width(12); //设置输出宽度为12 cout<<f[i]; } } 例:用数组来处理求Fibonacci数列问题
C++语言程序设计 明南科技大学 例:用数组来处理求 Fibonacci数列问题 运行结果: 2 8 13 21 34 55 89 144 233377610 9871597258441816765
C++语言程序设计 湖南科技大学 9 例:用数组来处理求Fibonacci数列问题 运行结果: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
C++语言程序设计 湖南科技大学 维教组应用举例 数 循环从键盘读入若干组选择题答案 计算并输出每组答案的正确率,直到输 组入c+z为止 每组连续输入5个答案,每个答案 可以是"a'.'d
C++语言程序设计 湖南科技大学 10 一维数组应用举例 循环从键盘读入若干组选择题答案, 计算并输出每组答案的正确率,直到输 入ctrl+z为止。 每组连续输入5个答案,每个答案 可以是'a'..'d'。 数 组