版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
会计学1C教程从入门到精通chap05实用数组数组是有序数据的集合。数组中每一个元素都属于同一个数据类型,并且具有相同的名字。为了区分一个数组中的不同元素,可以用数组名和下标的组合来惟一确定数组的一个元素。数组分为一维数组和多维数组,二维数组是一种最简单也是最常用的多维数组第2页/共53页第1页/共53页一维数组一维数组的定义方式为:数据类型数组名[数组长度];一个数组的每个元素都可以通过数组名和下标组合的方式进行访问。具体访问形式如下:数组名[下标]元素的下标是从0开始的整数第3页/共53页第2页/共53页使用一维数组第4页/共53页第3页/共53页求10个数的平均值,并找出其中的最大值和最小值第5页/共53页第4页/共53页用冒泡法对10个数进行从小到大的排序第6页/共53页第5页/共53页二维数组二维数组的定义方式为:数据类型数组名[常量表达式][常量表达式]inta[3][4];第7页/共53页第6页/共53页使用二维数组保存3个学生4门课成绩,求出每门课平均成绩和每名学生的平均成绩第8页/共53页第7页/共53页多维数组多维数组中最简单也是最常用的一种数组是二维数组,也可以定义三维或者三维以上的数组。数据类型数组名[常量表达式][常量表达式]......[常量表达式];第9页/共53页第8页/共53页字符串字符数组和字符串标准字符串库函数字符串数组第10页/共53页第9页/共53页字符串在C++中,没有字符串数据类型,所有的字符串都是作为字符数组来处理的。所谓字符数组,就是一个一维数组,数组中每个元素都是char数据类型。第11页/共53页第10页/共53页字符串定义charc[10];charc[10]={'b','e','i','j','i','n','g'};第12页/共53页第11页/共53页字符数组来表示字符串C++要求在字符串的末尾增加一个字符的空间用于保存一个字符串结束标记\0。要用字符数组来保存字符串时,要定义一个一维字符数组,让这个字符数组的长度比要保存的字符串的字符数目多1个,这样就有足够的空间保存字符串中的所有有效字符和字符串结束标记\0第13页/共53页第12页/共53页字符串输入函数getsgets和cin的区别gets函数要求有一个参数,这个参数用于保存已经输入的字符串。charstr[80];gets(str);第14页/共53页第13页/共53页字符串输出函数puts带有一个参数用于保存需要输出的字符串charstr[80]={"helloworld!"};puts(str);第15页/共53页第14页/共53页字符串长度函数strlen求一个字符串的长度charstr[80]={"HelloWorld!"};cout<<strlen(str);第16页/共53页第15页/共53页字符串复制函数strcpy把一个字符串的内容赋值给另一个字符串charstr1[80]={"hello"};charstr2[80];strcpy(str2,str1);strcpy(str2,str1,2);第17页/共53页第16页/共53页字符串比较函数strcmp字符串之间比较的规则是:两个字符串从左至右逐个字符比较,直到遇到不同的字符或者遇到字符串结束标志为止。如果两个字符串完全相同,那么就认为相等;如果不同,那么第一个不同的字符相比较的结果就是字符串比较的结果。if(strcmp(str1,str2)==0)cout<<"str1等于str2";第18页/共53页第17页/共53页字符串连接函数strcat将两个字符串连接成一个字符串charstr1[30]={"Hello"};charstr2[]={"World!"};cout<<strcat(str1,str2);第19页/共53页第18页/共53页指针指针的定义使用简单的指针指针和数组 指针和字符串 指针数组 多重间接访问 指针、数组与函数main函数的参数第20页/共53页第19页/共53页指针的定义指针是用于存储地址的对象。如果x是一个指针,它保存了变量y的地址,那么就称x是一个指针变量,x指向y。定义指针变量的方法是:数据类型*指针变量名;其中,“数据类型”表示的是指针变量中用以指向的变量的数据类型。第21页/共53页第20页/共53页运算符“&”和“*”“&”是一个单目运算符,后面跟一个变量,表示取后面变量的地址;“*”也是一个单目运算符,后面跟一个变量,这个变量通常是一个指针变量,表示取这个指针变量所指向变量的值第22页/共53页第21页/共53页使用指针第23页/共53页第22页/共53页在指针类型中不使用强制类型转换第24页/共53页第23页/共53页使用指针运算第25页/共53页第24页/共53页指针和数组一个数组的数组名就是一个指向这个数组中第一个元素的指针。由于数组在内存中保存时使用的是连续的存储空间,因此,数组中每个元素都有自己的地址,并且这些地址是相连的。这样,如果可以得到一个数组中某个元素的地址,又知道这个数组中每个元素的数据类型,那么就可以通过一个指针和在这个指针上进行的算术运算访问到这个数组中的所有元素。可以说访问数组元素的方法有两种一种是使用下标法访问数组元素,一种方法是使用指针法访问数组元素使用指针法访问数组元素的效率要高于下标法。第26页/共53页第25页/共53页使用指针访问字符数组,大写字符和小写字符之间相互转换第27页/共53页第26页/共53页指针和字符串在C++中,要访问一个字符串可以采用两种方法使用字符数组;使用指向字符的指针来指向一个字符串第28页/共53页第27页/共53页将一个字符串反向输出第29页/共53页第28页/共53页指针数组如果一个数组中所有的元素都是同一种类型的指针,那么这个数组就是一个指针数组int*p[10];第30页/共53页第29页/共53页创建一个字典,根据输入的字母找到以此字母开头的单词并输出第31页/共53页第30页/共53页多重间接访问如果一个指针中保存的是另一个指针的地址的话,那么这个指针就是一个指向指针的指针,实现的是二次间接访问。间接访问的次数可以无限地增加下去,但是一般情况下,很少有用到三次或者三次以上的间接访问。第32页/共53页第31页/共53页使用指向指针的指针第33页/共53页第32页/共53页用指向指针的指针处理字符串数组第34页/共53页第33页/共53页指针作为函数参数与函数参数通过传引用方式进行实参到形参的传递类似,指针也可以作为函数的参数并通过指针带回处理的数据。为了让指针作为函数参数,就需要让函数的形参和实参都是指向同样数据类型变量的指针。第35页/共53页第34页/共53页用指针作为函数参数求两个数的较大和较小值第36页/共53页第35页/共53页数组作为函数参数如果要让一个数组的元素作为函数的参数,那么使用方法与普通变量做参数没有任何区别。由于一个数组的名字就是指向这个数组第一个元素的指针,因此如果让数组名作为参数,实际上就是让一个特殊的指针作为参数。第37页/共53页第36页/共53页计算两个向量的和第38页/共53页第37页/共53页指针作为函数返回值函数也可以返回一个指针。第39页/共53页第38页/共53页在一个字符串中删除指定字符,并显示删除后的结果第40页/共53页第39页/共53页main函数的参数在C++中允许main函数带有两个可选的参数、argc是一个int类型的形参。它的作用是保存命令行参数中参数的个数。需要说明的是,argc的值至少是1,原因是文件名也会被认为是一个参数argv是一个字符指针数组,每个元素都是一个字符指针,用于指向命令行中各个参数的第一个字符第41页/共53页第40页/共53页使用命令行参数实现显示字符串第42页/共53页第41页/共53页编写一个整数加法程序,加数和被加数用命令行参数的方式输入第43页/共53页第42页/共53页链表什么是链表链表的创建、插入和删除第44页/共53页第43页/共53页什么是链表链表由一个或多个节点组成。每个节点可以分成两个部分,一部分用于保存数据,另一部分是一个或多个指针,用于指向这个节点后面或者前面的节点。为了能够找到链表,定义了一个头指针,专门用于存放链表第一个节点的地址。为了能表明一个节点是链表的结尾,这个节点的指向后面节点的指针被赋值成空指针。第45页/共53页第44页/共53页链表分类单向链表双向链表循环链表第46页/共53页第45页/共53页表示链表使用结构体structnode{intdata;structnode*p;}第47页/共53页第46页/共53页访问成员定义了指向链表的指针p之后使用“.”操作符*p.data使用指向运算符“->”p->data第48页/共53页第47页/共53页链表的创建向系统申请一个节点所需的内存空间,可以使用new运算符指针变量=new数据类型;一个节点所用的空间不再需要,那么可以使用delete运算符将这块内存空间交还给系统delete指针变量;第49页/共53页第48页/共53页创建一个链表用于保存若干个整数第50页/共53页第49页/共53页插入节点如果需要把一个新节点插入到链表中间的某个位置,那么相对把新节点放在链表的末尾要复杂一些。例如,要把p指针指向的节点插入到q指针指向的节点后面,可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 泉州经贸职业技术学院《保险法》2025-2026学年期末试卷
- 阳泉职业技术学院《经济应用文写作》2025-2026学年期末试卷
- 南昌理工学院《健康管理学》2025-2026学年期末试卷
- 渔业船员岗前理论实操考核试卷含答案
- 合成氨净化工操作安全知识考核试卷含答案
- 润滑油调合操作工安全综合评优考核试卷含答案
- 高压熔断器装配工安全意识模拟考核试卷含答案
- 液体二氧化硫工冲突管理评优考核试卷含答案
- 电化学反应工安全专项知识考核试卷含答案
- 电焊工岗前工作考核试卷含答案
- DB11-T 693-2024 施工现场临建房屋应用技术标准
- 评审咨询方案模板怎么写
- 2025河北雄安容港农业科技有限公司招聘工作人员30名笔试参考题库附带答案详解
- IP形象设计课件
- 足球无人机课件
- 建筑工程项目质量追溯与问题整改方案
- 人民城市人民建-人民城市为人民主题课件(含文字稿)
- 2025年社保业务考试试题及答案
- 大学食堂自营管理办法
- 银行网点装修施工难点及安全防盗措施
- 缅怀革命先烈-感恩幸福生活主题班会教案
评论
0/150
提交评论