[工学]第5章 数组1.pptVIP

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

第5章 数组 5.1 一维数组 5.2 二维数组 5.3 多维数组 5.4 数组与函数 5.5 数组的应用 数组类型是一种构造型(组合型)的数据类型。 数组是由一组具有相同数据类型的元素组成的集合。数组的类型就是这组元素的数据类型。构成数组的这组元素在内存中占用一组连续的存储单元。可以用一个统一的数组名标识这一组数据,而用下标来指明数组中各元素的序号。 根据数组的维数,分为一维数组、二维数组和多维数组,常用的是一维和二维数组。 5.1 一维数组 5.1.1 一维数组的定义 定义一维数组的语法格式为: 类型 数组名[常量表达式]; 其中,类型是数组类型,即数组中各元素的数据类型,可以是整型、浮点型、字符型等基本类型。数组名是一个标识符,代表着数组元素在内存中的起始地址,它的命名规则与变量名的命名一样。常量表达式又称下标表达式,表示一维数组中元素的个数,即数组长度(也称为数组大小),用一对方括号“[ ]”括起来。方括号“[ ]”的个数代表数组的维数,一个方括号表示一维数组。 例如:下面分别定义了一个具有5个元素的字符型数组a和一个具有10个元素的整型数组b: char a[5]; int b[10]; 对上面定义的数组b,也可以采用下面这种定义方法: const int size=10; int b[size]; 注意:在定义数组时,不能用变量来描述数组定义中的元素个数。例如,下面的定义方式是不合法的: int b[n]; 下标指明了数组中每个元素的序号,下标值为整数,用数组名加下标值就可以访问数组中对应的某个元素。下标值从0开始,因此对于一个具有n个元素的一维数组来说,它的下标值是0~ n-1。例如,对上例中定义的数组b来说,b[0]是数组中的第一个元素,b[1]是数组中的第二个元素,…,b[9]是数组中的最后一个元素,而不包含b[10]。 数组元素在内存中是顺序存储的。对于一维数组,就是简单地按下标顺序存储。 例如,对上面定义的整型数组b,在内存中的存放顺序如图5-1所示: 图5-1 一维数组的存储 5.1.2 一维数组的初始化 在定义数组时对其中的全部或部分指定初始值,这称为数组的初始化。只有存储类别为静态的或外部的数组才可以进行初始化。初始化的语法格式为: 类型 数组名[ 数组范围 ]={值1,值2,…,值n} 例如:对在5.5.1小节中定义的数组a进行初始化。 char a[5]={’a’,’b’,’c’,’d’,’e’}; 或: char a[ ]={’a’,’b’,’c’,’d’,’e’}; 在对数组初始化时,也可以只对数组中的部分元素指定初始值。也即,初始化值的个数可以少于或等于数组定义的元素的个数,但不可以多于数组元素的个数,否则会引起编译错误。 当初始化值的个数少于数组元素个数时,前面的元素按顺序初始化相应的值,后面不足的部分由系统自动初始化为零(对数值数组)或空字符‘\0’(对字符数组)。 例如: int c[5]={1,2}; 定义整型数组c有5个元素,但只初始化前两个元素:c[0]=1,c[1]=2。对于后面的三个元素没有定义初始值,此时由系统自动给它们赋0。 当数组长度与初始化元素的个数不相等时,数组长度不能省去不写,如上例不能写为: int c[ ]={1,2}; 否则编译器会认为数组c只有2个元素而不是5个元素。 对于字符型数组的初始化,除了上面介绍的将数组中的元素一个一个赋值为字符的方式外,还可以有另外一种方式,即将整个字符型数组一次性赋值为一个字符串,此时花括号可以省略。例如,下面三种初始化赋值方式是等价的: char d[6]={ ’h’ , ’e’ , ’l’ , ’l’ , ’o’ , ’\0’ }; char d[6]={”hello”}; char d[6]=”hello”; 后两种方法比较符合用户的习惯。 要注意的是:单个字符用单括号括起来,而字符串用双括号括起来,组成字符串的字符除显示给出的外,还包括结尾处标识字符串结束的符号‘\0’。所以上例中的字符串“hello”实际上包含6个字符:‘h’,‘e’,‘l’,‘l’,‘o’,‘\0’ 。如果将上例定义成如下形式就错了: char d[5]=”hello”; 或 char d[5]={”hello”}; 此时,最后一个字符‘\0’未能放入d数组中,而是存放到d数组之后的存储单元中。这种错误编译器检查不出来,但由于改写了数组空间以外的内存

文档评论(0)

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

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

1亿VIP精品文档

相关文档