C++语言程序设计 第六章数组指针与字符串
1 第六章 数组 指针与字符串 C++语言程序设计
C++语言程序设计 本章主要内容 ●数组 ●指针 指针与数组 指针与函数 动态存储分配 ●字符串 x
C++语言程序设计 2 本章主要内容 ⚫ 数组 ⚫ 指针 ⚫ 指针与数组 ⚫ 指针与函数 ⚫ 动态存储分配 ⚫ 字符串
C++语言程序设计 数组的概念 数组是用来存储和处理大量同类型数据(对 象)的。 数组是具有一定顺序关系的若干相同类型变 量的集合体,组成数组的变量称为该数组的元素 数组元素是由数组名和数组下标指定。 数组属于构造类型。 x
C++语言程序设计 3 数组的概念 数组是用来存储和处理大量同类型数据(对 象)的。 数组是具有一定顺序关系的若干相同类型变 量的集合体,组成数组的变量称为该数组的元素。 数组元素是由数组名和数组下标指定。 数组属于构造类型
C++语言程序设计 维数组的声明与引用 数 维数组的声明 类型说明符数组名[常量表达式 组数组名的构成方法与一般变量名相同。 例如:inta10]; 表示a为整型数组,有10个元素:a0].a9] ●引用 必须先声明,后使用。通过数组名和数组下标方式逐 个引用数组元素。数组下标是从0开始的 例如:a[0]=a[5]+a[7]-a[2*3]
C++语言程序设计 4 一维数组的声明与引用 ⚫ 一维数组的声明 类型说明符 数组名[ 常量表达式 ]; 例如: int a[10]; 表示 a 为整型数组,有10个元素:a[0]...a[9] ⚫ 引用 必须先声明,后使用。通过数组名和数组下标方式逐 个引用数组元素。数组下标是从0 开始的。 例如:a[0]=a[5]+a[7]-a[2*3] 数组名的构成方法与一般变量名相同。 数 组
C++语言程序设计 例6,1一维数组的声明与引用 #include using namespace std int mainO i int array5;∥声明存放5个整型元素的数组 for(intt=0;t<5;++t)∥使用循环变换数组下标 Aray(=t;∥存储整型数值到数组中 for(t=0;t<5;++ cout << This is array"<<t < <<Aray<<"n";∥显示数组元素 return o x
C++语言程序设计 5 例6. 1一维数组的声明与引用 #include using namespace std; int main() { int Array[5]; //声明存放5个整型元素的数组 for(int t=0; t<5; ++t) //使用循环变换数组下标 Array[t] = t; //存储整型数值到数组中 for(t=0; t<5; ++t) cout << "This is Array[" << t << "]: " << Array[t] << "\n"; //显示数组元素 return 0; }
C++语言程序设计 维教组的存储顺序 数 数组元素在内存中顺次存放,它们的地址是连 续的。 例如:具有10个元素的数组a,在内存 组 中的存放次序如下: aa0]aal2a[3]a4]a5]a]a[7]a8]a[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++语言程序设计 维数组的初始化 数可以在编译阶段使数组得到初值: 在声明数组时对数组元素赋以初值 例如:nta10={0,1,2,34,5,6,7,8,9}; 组可以只给一部分元素赋初值,剩余元素自动 初始化为0 例如:nta10={0,1,2,34}; 在对全部数组元素赋初值时,可以不指定数 组长度。 例如:nta={1,2,34,5} x
C++语言程序设计 7 一维数组的初始化 可以在编译阶段使数组得到初值: – 在声明数组时对数组元素赋以初值。 例如: int a[10]={0,1,2,3,4,5,6,7,8,9}; – 可以只给一部分元素赋初值,剩余元素自动 初始化为0。 例如: int a[10]={0,1,2,3,4}; – 在对全部数组元素赋初值时,可以不指定数 组长度。 例如: int a[]={1,2,3,4,5} 数 组
C++语言程序设计 例:用数组来处理求 Fibonacci数列问题 include using namespace std int main( i int i; static int f[20]={1,1};初始化第0、1个数 for(=2;<20;++)f=ff-2+f1;求第2~19个数 for(=0;<20;++)∥输出,每行5个数∥ i if ((705==0) cout<<endl cout width(12);∥设置输出宽度为12 cout<<f[ x
C++语言程序设计 8 #include using namespace std; int main() { int i; static int f[20]={1,1}; //初始化第0、1个数 for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; //求第2~19个数 for(i=0;i<20;i++) //输出,每行5个数// { if(i%5==0) cout<<endl; cout.width(12); //设置输出宽度为12 cout<<f[i]; } } 例:用数组来处理求Fibonacci数列问题
C++语言程序设计 例:用数组來处理求 Fibonacci数列问题 运行结果 3 8 13 21 34 89144233377610 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++语言程序设计 教组使用中的注意点 ●数组声明中的长度必须由常量确定,让编译 器编译时知道数组大小。 char array 1[10][ hellos i int size=50; int array 2[Size];}∥ error ●省略数组大小只能在有初始化的数组定义中。 inta[]={24,68} inta[l;∥ error x 10
C++语言程序设计 10 数组使用中的注意点 ⚫ 数组声明中的长度必须由常量确定,让编译 器编译时知道数组大小。 char array1[10]={“hello”}; { int Size=50; int array2[Size];} //error ⚫ 省略数组大小只能在有初始化的数组定义中。 int a[ ]={2,4,6,8}; int a[ ]; //error