C语言程序设计 作者 黄锐军 第5章 数组.pptVIP

C语言程序设计 作者 黄锐军 第5章 数组.ppt

  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章 数组 在这一章中将介绍C语言程序的数组,数组是一段连续的内存变量,每个变量都有一个具体的下标,把一组变量连续存放在内存中,具有很实用的价值,例如可以存放字符串等。 5.1 一维数组 5.1.2 一维数组的定义 ?1.?????? 一般定义 一维数组的定义方法一般为: 类型 数组变量名称[大小]; 其中类型可以是任何的C语言数据类型,例如char、int、long、float、double等,数组名称与普通变量名称一样,“大小”是数组在内存中的单元数,在定义时必须是一个常数,不能是变量,数组每个单元占的字节数就是对应类型占的字节数,显然数组占的总字节数是: 大小*sizeof(类型) 例如: char s[20]; // 定义20个字符的数组 int n[20]; // 定义能存储20个整数的数组 float f[10]; // 定义能存储10个float数的数组 int a[5]; //定义能存储20个整数的数组 如图5-3所示为int a[5]定义的数组在内存中的分布图,共有5个元素,它的每一个单元都是一个int整数,由于一个int整数在计算机中占4个字节,因此这个数组在计算机中占20个字节。值得注意的是数组在定义之后,它的任何一个单元的值是不确定的。 2.定义且初始化 数组在定义时还可以同时为各个单元设置初始化的值。 (1)??? 定义时给所有元素赋值,例如: char s[5]={‘a’,’b’,’c’,’d’,’e’}; 定义数组s[5],并且设置s[0]=’a’,s[1]=’b’,s[2]=’c’,s[3]=’d’,s[4]=’e’。 (2) 定义时给部分元素赋值,例如: char s[5]={‘a’,’b’}; 定义数组s[5],并且设置s[0]=’a’,s[1]=’b’,s[2]=’\0’,s[3]=’\0’,s[4]=’\0’,既后面没有赋值的元素全部设置为0。 (3)??? 定义时给所有元素赋值,则可以不设置数组的大小,例如: char s[]={‘a’,’b’,’c’,’d’,’e’}; 与 char s[5]={‘a’,’b’,’c’,’d’,’e’}; 是等价的。 5.1.4 数组应用要素 ?数组应用中要注意下标不能超过边界,例如: int n[10]; 数组元素只有n[0],n[1],……,n[9]共10个元素,第一个元素是n[0]不是n[1],最后一个元素是n[9]不是n[10],如果引用了n[10],则程序在编译时不会报告错误,但程序运行时,n[10]单元排在n[9]之后,它不是数组的一个部分,可能是系统的某个单元,如把一个值赋予n[10],就可能改变了系统的内存值,可能会带来预想不到的结果。 5.2 一维字符数组 5.2.1 一维字符数组 ?一维字符数组是char类型的数组,因为它的每一个元素是一个char变量,可以用来存放字符串,因此比较特别。例如: char a[5]; 定义了一个字符数组,它有a[0],a[1],a[2],a[3],a[4]共5个元素,可以为它们赋值,例如: a[0]=’H’; a[1]=’e’; a[2]=’l’; a[3]=’l’; a[4]=’o’; 也可以在定义时就对各个元素赋值,例如: char a[5]={‘H’,’e’,’l’,’l’,’o’}; 其内存分布如图5-8所示。 5.2.2 一维字符数组与字符串 ? 字符串是一组字符,这些字符在内存中连续分布,在最后一个字节单元中用’\0’表示结束,这种结构与字符数组十分相似,实际上字符数组可以用来表示和存储字符串。例如: char b[6]={‘H’,’e’,’l’,’l’,’o’,’\0’}; 数组a中存储的就是字符串”Hello”,在定义字符数组时,可以把字符串直接赋值给字符数组,例如: char b[]={“Hello”}; 这种定义方法与 char b[6]={‘H’,’e’,’l’,’l’,’o’,’\0’}; 是完全等价的。 5.2.3 字符串的输入与输出 前面已经讨论过字符串的输出在printf函数中用“%s”来进行,而字符串又用字符数组来表示,因此在printf函数中用“%s”来输出字符数组表示的字符串,例如: char a[]={“hello”}; printf(“%s”,a); // 输出Hello 同样在scanf中用“%s”来输入一个字符串,输入的字符串存储在指定的字符数组中,例如: char b[20]; scanf(“%s”,b); 注意在scanf函数中数组名称前面没有“”符

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档