C++程序设计教程第七章.pptVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计教程第七章

1 第七章 数 组 前面所介绍的数据都是基本数据类型(整型,字符型,浮点型)。人们经常需要使用大量集中在一起的数据来工作,C++支持数组处理来满足这一需求。数组可以是一维的,也可以是多维的,许多重要的应用都是基于数组的。 7.1 数组定义 数组是一个由若干同类型变量组成的集合。一维数组的说明方法为数据类型加数组名,再加方括号,里面含有元素个数。即: 类型说明符 数组名 [常量表达式]; 例如,下面的代码说明一个字符数组: void main() { char buffer[5]; //… } 下标是数组元素到数组开始的偏移量。第1个元素的偏移量是0,第2个元素的偏移量是1,依次类推。由此,数组是一系列大小相同的连续项,每项到公共基点的偏移量是固定的。 一个数组定义是具有确定含义的操作,它分配固定大小的空间。如果方括号的值不能在编译时确定,那就只能在运行时确定,即在函数调用时,即兴分配数组空间。这使得为局部作用域的数组分配数据空间的语句,具有不同的意义,它随每次函数调用的不同而不同,这是不允许的。 void main() { int size = 50; int array[size]; //error //… } 数组定义的方括号中,常量表达式可以包含枚举常量和字符常量,该常量表达式的值是在编译时确定的。 数组的作用域规则和单个变量相同。定义为局部作用域的数组刚分配完空间时,其内容是不定的。全局作用域数组和静态局部作用域数组初始为全0。 7.2 访问数组 元素数组中特定的元素通过下标访问。在 C++中,所有数组均由连续的存储单元组成,起始地址对应于数组的第一个元素,下标是距数组开始的偏移量。长度为n的数组,其下标范围为0-(n-1)。 在内存的表示中,地址是从0开始的。如果表示数组的下标从1开始,则需要进行额外的机器操作。 在数组定义后,给数组赋初值时,必须一个个元素逐个访问,如访问单个变量一样。见例。 # include iostream.h void main() { char chArray[30]; cin.get(chArray,30); for (int i=0; chArray[i]!=‘\0’;i++) coutchArray[i]; coutendl; } 7.3 初始化数组 1. 数组的初始化 数组可以初始化,即在定义时,使它包含程序马上能使用的值。例如,下面的代码定义了一个全局数组,并用一组Fibonacci数初始化: int iArray[10]={1,1,2,3,5,8,13,21,34,55}; void main() { //…} 初始化数组的值的个数不能多于数组元素个数,初始化数组的值也不能通过跳过逗号的方式来省略。初始化值的个数对少于数组元素个数。当初始化值的个数少于数组元素个数时,前面的按序初始化相应值,后面的初始化为0(全局或静态数组)或为不确定值(局部数组)。见例。 2. 初始化字符数组 初始化字符数组有两种方法,一种是: char array[10]={“hello”}; 另一种是: char array[10] = {‘h’,’e’,’l’,’l’,’o’,’\0’}; 第一种方法用途较广,初始化时,系统自动在数组没有填值的位置用’\0’补上。另外,这种方法中的花括号可以省略。第二种方法一次一个元素地初始化数组,如同初始化整型数组。这种方法通常用于输入不容易在键盘上生成的那些不可见字符。 3. 省略数组大小 有初始化的数组定义可以省略方括号中的数组大小。 int a[] = {2,3,6,8,10}; 编译时必须知道数组的大小。通常,声明数组时方括号内的数字决定了数组的大小。有初始化的数组定义又省略方括号中的数组大小时,编译器统计花括号之间的元素个数,以求出数组的大小。 在没有规定数组大小的情况下,怎么知道数组的大小呢?stzeof操作解决了该问题。见例ch7_3,ch7_4。 7.4 向函数传递数组 无论何时,将数组作为参数传给函数,实际上只是把数组的地址传给函数。物理上,把整个数组放在栈中是不合理的,因为栈大小是一定且有限的。如果把传送给函数的整个数组都放在栈中(内存的大块复制),则很快会把栈空间用光。 1. 传递给标准库函数 C++中有一个memset()的函数,它可以一字节一字节地把整个数组设置为一个指定的值。 memset()函数在mem.h头文件中声明,它把数组的起始

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档