- 3
- 0
- 约1.07万字
- 约 62页
- 2016-12-10 发布于重庆
- 举报
C面向对象第七章
C++面向对象程序设计 第七章 数组 葛勇 7.1数组入门 数组是用来表示数学上如数列、序列的东西 数组的行为就像一个变量列表,只是采用了统一的命名机制,并可用一行简单的代码来声明 7.1.1声明和引用数组 数组的声明,如: int score[5]; 则声明了一个名为score的具体5个元素的int型数组,相当于声明了如下: score[0],score[1],score[2],score[3],score[4] 5个变量称这5个变量为数组score的元素,[]称为下标操作符,[]里的整数为数组的下标 注意:C++中数组的下标从0开始,上限比数组元素小1。如上的5又称为数组的长度。 数组和普通的变量可在同一行代码中声明,只要类型一致就可以,如: double a,array[10],b=0; 数组的长度必须是一个常量或常量表达式,如: const int sz=10; double array[sz]; 是合法的,但: int a=3; char ch[a]; 则是不合法的。 数组元素的赋值和变通变量一样使用,如: char str[10]; str[5]=‘A’; str[7]=‘b’; 数组使用示例 #includeiostream #includecmath using namespace std; int main() { const int count=10; double num[count]; cout请输入10个数:endl; for(int i=0;i10;i++) { cinnum[i]; } double sum=0,product=1,average,geometricaverage; for(int i=0;i10;i++) { sum+=num[i]; product*=num[i]; } average=sum/10; geometricaverage=pow(product,0.1); cout这10个数的总和为:sumendl 平均数为:averageendl 总乘积为:productendl 几何平均数为:“ geometricaverageendl; } 数组在内存中的表示 计算机在运行时,计算机的内存被继续地编号,每个编号的位置称为字节,一个字节的编号就是它的地址。 任何一个变量都存放在一个有编号的地址上,如果给这个变量赋值,则把这个值放在这个地址上。 如果一个函数有引用形参,调用时实际上就是把实参的地址传给引用形参,因此所有的操作都是在实参所在的地址上操作的。 数组的元素在内存中被存放在一片连续的地址中,两个相邻元素地址的编号的差,由数组的类型来决定,如int array[10];则每个元素占用4个字节,则array的相邻两个元素的地址编号相差4,再如double dblarr[8];则每个元素占用8个字节,从而相邻两个元素的地址编号相关8 获取数组元素的地址 #includeiostream using namespace std; int main() { const int count=10; double num[count]; cout数组的元素\t地址endl; for(int i=0;icount;i++) { coutnum[i]\t\tnum[i]endl; } } 运行示例 #includeiostream using namespace std; int main() { const int count=10; int num[count]; cout数组的元素\t地址endl; for(int i=0;icount;i++) { coutnum[i]\t\tnum[i]endl; } } #includeiostream using namespace std; int main() { const int count=10; char num[count]; char* p=num; for(int i=0;icount;i++) num[i]=48+i; cout字符数组,即字符串,只能输出首地址:endl; coutnumendl; cout数组的元素\t值endl; for(int i=0;icount;i++) coutnum[i]\t\tp[i]endl; } 数组下标越界 int a[6]; a[6]=30; //越界 由于数组a的下标最大值为5,因此a[6]=30造成下标越界的问题,在C++中,如果数组下标越界,编译器不会给出提示,但这种错误往往是灾难性的,实际上C++在处理下标越界的问题是这样处理的: 如上a[6]虽然不是数
原创力文档

文档评论(0)