C语言chap5 数组.ppt

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言chap5 数组

第五章数组;迄今为止所介绍的数据类型(整型、字符型、浮点型)都称为基本类型或原子类型,即它们是不可再分的类型。C语言还允许将多个数据组织在一起,用一个名字在程序中使用这类数。这些类型是基本类型或者组合类型的组合,主要有数组类型、结构体类型、共用体类型等。本章介绍数组类型的基本概念和使用方法。 数组是指一组同类型数据组成的序列。它的特点有如下3点: · 组织了一组同类型数据,并为之提供一个名字; · 这组数据被存储在内存的一个连续的区域中; · 这组数据具有顺序关系,组成它的每个元素可以通过序号访问。 ;5.1 一维数组;而使用简单变量时,就要使用下面的程序结构:;2. 一维数组的定义 ;(2)student_age是这个int型一维数组的名字。数组名应当遵循C语言关于用户关键字的规则。 (3)“30”是该数组中元素的个数(数组的大小)。C89规定数组的大小在编译时应当是确定的,即在定义数组的声明语句中必须使用常量表达式来指定数组大小,并且在程序运行时就不能再改变,即不能重定义。而C99允许使用变长的局部数组,即允许使用非常量表达式指定数组大小,并且可以可以被多次声明,每次声明定义的数组大小可以各不相同。如在C99中下面的写法是正确的,而在C99之前,是不合法的。 int x=8,y=3; int a[x+y]; ┇ int a[x-y]; 读者在使用时,应当注意所使用的编译系统是按什么标准实现的,否则会出现错误。;(4)下标的序号从0开始(而不是从1开始)。student_age数组中10个元素分别是:student_age[0], student_age[1],student_age[2], student_age[3], student_age[4], student_age[5], student_age[6], student_age[7], student_age[8], student_age[9]。 注意没有student_age[10]元素。;5.1.2 数组元素的引用方法 一个数组一旦被定义,编译器将会为之开辟一个存储空间,以便将数组元素顺序地存储在这个空间中。每一个数组元素占用一个int类型的存储空间。图5.1为上一小节定义的一维int型数组的各元素在内存中的存储情形。;数组一经被定义,其元素就可以被引用。引用一维数组的元素必须用一个下标,其形式为:;(3)数组元素(下标变量)具有普??变量的特征,可以作为左 值表达式使用。 数组元素常常使用在循环结构中。 例5.1 用一个数组存储10个学生的年龄,然后分别按正序和 反序显示它们。;/****** 文件名:ex050101.c ******/ /****** 用数组存储年龄 ******/ #include stdio.h #define Nelements 10 int main(void) { int i; int student_age[Nelements]; /* 定义数组 */ for(i=0;iNelements;i++) /* 输入数据 */ { printf(Please input a student age:); scanf(%d,student_age[i]); } for(i=0;iNelements;i++) /* 正序输出 */ printf(%6d, student_age[i]); printf(\n); for(i=Nelements;i=0;i--) /* 反序输出 */ printf(%6d, student_age[i]); printf(\n); return 0; };一次运行结果如下:;可以发现,上面的输出结果中,反序输出的数据中多了一个“10”。检查程序,发现是使用了下标“Nelements”,而正确的下标应当不超过Nelements-1。所以,只要把反序输出的重复结构改为下面的形式就可以了。;5.1.3 一维数组的初始化 数组也有特定的存储属性,即可以是全局的也可以是局部的,可以是静态的也可以是动态的。如果一个自动存储类型的数组,没有初始化,也没有对它的任何元素赋值,那么每个元素的值都是无法

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档