数组和C风格字符串.ppt
《数组和C风格字符串.ppt》由会员分享,可在线阅读,更多相关《数组和C风格字符串.ppt(20页珍藏版)》请在三一办公上搜索。
1、第3章 数组和C 风格字符串,由除了前面介绍的基本数据类型外,C+还提供了复合数据类型以解决相对复杂的问题,这些数据类型是基于基本的整型、浮点型、char型和bool型等创建的,本章将介绍数组的相关知识很使用方法,以及数组与C风格字符串的关系。,3.1 什么是数组,将固定数目的同类型数据有序地组合在一起,在内存中连续排列,并用同一个名字来标识,这样一个结构称为数组。数组有以下几个特征:用一个名字命名一组数据。这组数据类型相同。这组数据的数目是确定的。每个数据称为数组的元素,每个元素在数组中有一个位置,即该元素在数组中的顺序关系,元素在内存中是连续排列的,换言之,数组占有一片连续的内存空间。程序
2、依靠元素在数组中的位置信息对元素进行访问,即数组名加下标的形式。和基本数据类型一样,要使用一个数组,必须先对其进行声明,声明的格式为:类型 数组名N1,N2,Nn;,3.2 维数组,一维数组也称向量,用以组织具有一维顺序关系的一组同类型数据,如某个班级所有人的成绩信息,和基本数据类型一样,在使用数组前必须先对其进行声明。,3.2.1 一维数组的声明,一维数组的声明形式为:类型 数组名N1;其中,N1必须是个整型常量,如5、10或const整型量。假定班级里有10个人,可以用下列形式声明一个数组以存储每个人的成绩:int age10;这样,编译器将一次性开辟10个存放int型数据的连续内存空间,
3、省却了声明10个int变量的麻烦,采用一维数组存储用户输入的10个数据,很显然,用一维数组处理具有顺序关系的数据比用简单变量要方便得多。,3.2.2 初始化一维数组,代码3-1通过用户输入数据对数组中的运算进行赋值,其实,在声明一个数组的同时也可以对各元素进行初始化,初始化表达式按元素的顺序依次写在一对花括号中,元素中间用逗号隔开,代码3-2与代码3-1是等价的。,3.2.3 一维数组应用举例,对数组中的元素进行处理,最有效的途径就是使用循环结构,前面的代码示例中已经粗略地体现了如何访问数组元素,下面的例子用以寻找数组中元素的最大值和最小值,见代码33。,3.2.4 数组操作注意事项,C+不允
4、许对数组进行整体操作,像数组比较,数组数据的输入输出等,必须通过逐一访问数组元素来完成,下列一些用法是不合法的:,3.3 C 风格字符串,在第2章中已经介绍了字符串常量的知识,C语言中的字符串是用一维字符型数组来实现,编译器把每个字符串理解为一个以0(空字符,null character)为结束符的一维字符数组,这种类型的字符数组常被称为C风格字符串,C+语言借鉴了这一用法。,3.3.1 C 风格字符串的声明,声明一个C风格字符串,使其内容为“I Love C+!”,代码如下:char str=I,L,o,v,e,C,+,+,!,0;上述代码在声明数组时没有指定大小,这样,编译器就会自行计算决
5、定数组的大小。对于C风格字符串的声明,推荐采用这种方式,免去了程序员自行计数的麻烦,如果由程序员指定的数组太小,编译器会报错,太大的话就浪费空间。但若在声明语句中无初始化表达式,则应该指出该字符数组的大小。可以看出,存储一个字符串所需字节数比该串的字符数多1,如存储“Hello”,该串有5个字母,但C风格字符串需要6个字节。而且,上述声明方式看上去很麻烦,要一个字母一个字母地用单引号包裹起来,还要记着后面的0,实际上,C+还提供了另一种声明C风格字符串的方法使用字符串常量,如:char str=”I Love C+!”;,3.3.2 字符数组的cin和cout,仅仅由字符组成,但结尾不是0的数
6、组不是C风格字符串,如:char str=H,e,l,l,o;如此声明的str只能称为字符数组,空字符0对C风格字符串十分重要,很多与之对应的处理函数和对象(包括cout和cin),都逐个处理C风格字符串的字符,直到遇到空字符为止,因此,对于“char str=H,e,l,l,o;”,cout在输出5个字符后,还会继续输出内存中后面字节的内容,直到遇到空字符为止,这时输出结果是不确定的,但由于内存中存在大量的空字节,所以这个过程应该可以很快停止。可以将C风格字符串(甚至是普通的字符数组)当成一个整体来进行输入输出操作,见代码34。,3.3.3 get()函数和getline()函数,那么如何将
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 风格 字符串
链接地址:https://www.31ppt.com/p-6579165.html