1 / 40
文档名称:

第05章 数组.ppt

格式:ppt   页数:40
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第05章 数组.ppt

上传人:管理资源吧 2011/8/3 文件大小:0 KB

下载得到文件列表

第05章 数组.ppt

文档介绍

文档介绍:第5章数组
一维数组
二维数组
多维数组
数组与函数
数组的应用
数组类型是一种构造型(组合型)的数据类型。
数组是由一组具有相同数据类型的元素组成的集合。数组的类型就是这组元素的数据类型。构成数组的这组元素在内存中占用一组连续的存储单元。可以用一个统一的数组名标识这一组数据,而用下标来指明数组中各元素的序号。
根据数组的维数,分为一维数组、二维数组和多维数组,常用的是一维和二维数组。
一维数组
一维数组的定义
定义一维数组的语法格式为:
类型数组名[常量表达式];
其中,类型是数组类型,即数组中各元素的数据类型,可以是整型、浮点型、字符型等基本类型。数组名是一个标识符,代表着数组元素在内存中的起始地址,它的命名规则与变量名的命名一样。常量表达式又称下标表达式,表示一维数组中元素的个数,即数组长度(也称为数组大小),用一对方括号“[ ]”括起来。方括号“[ ]”的个数代表数组的维数,一个方括号表示一维数组。
例如:下面分别定义了一个具有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 一维数组的存储
b[0]
b[1]
b[2]
b[3]
b[4]
一维数组的初始化
在定义数组时对其中的全部或部分指定初始值,这称为数组的初始化。只有存储类别为静态的或外部的数组才可以进行初始化。初始化的语法格式为:
类型数组名[ 数组范围]={值1,值2,…,值n}
例如:。
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数组之后的存储单元中。这种错误编译器检查不出来,但由于改写了数组空间以外的内存单元,就可能会破坏其他数据区或程序本身。在用户编写程序时,一定要注意避免这样的情况发生。

最近更新

2024年天津财经大学珠江学院单招综合素质考试.. 40页

2024年太原幼儿师范高等专科学校单招职业适应.. 40页

2024年威海职业学院单招职业技能测试模拟测试.. 41页

2024年宁夏中 卫 市单招职业倾向性测试模拟测.. 41页

2024年宁夏固原地区单招职业适应性测试题库完.. 41页

2024年宁夏建设职业技术学院单招职业倾向性考.. 40页

2024年宁夏葡萄酒与防沙治沙职业技术学院单招.. 39页

2024年宁夏银川市单招职业适应性考试题库必考.. 39页

高温作业风险防范措施 35页

2024年宁波大学科学技术学院单招职业适应性测.. 42页

2024年安庆医药高等专科学校单招职业技能考试.. 40页

2026年企业关爱员工实施方案 80页

高效APK反编译算法研究 36页

2024年安徽体育运动职业技术学院单招职业适应.. 42页

2024年安徽卫生健康职业学院单招职业倾向性考.. 39页

2024年安徽国防科技职业学院单招职业适应性测.. 39页

2024年安徽工业职业技术学院单招职业技能测试.. 39页

2024年安徽林业职业技术学院单招职业技能考试.. 39页

2024年安徽现代信息工程职业学院单招综合素质.. 42页

2024年安徽省宣城市单招职业倾向性测试题库附.. 41页

2024年安徽省蚌埠市单招职业适应性考试模拟测.. 40页

2026年以真情命题的作文 19页

2026年以挑战挫折话题作文 8页

2026年以感谢为话题的作文5篇 6页

2026年以宽容为主题的作文3篇 4页

2026年以劳动的致敬劳动节作文 22页

2026年以主题爱国作文 12页

绿色供应链管理在时尚产业的实践与挑战 27页

2026年仓库管理员转正述职报告 15页

风险防控策略 35页