




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
08:54:37,1,C+程序设计教程(第二版),第三章数据类型Chapter3DataTypes,清华大学出版社钱能,08:54:37,2,数据类型:一定的数据在计算机的内部表示;该数据所表示的值的集合;在该数据上的一系列操作。内部数据类型:1.整型长整型,短整型,字符型,布尔型2.浮点型单精度,双精度,08:54:37,3,第三章内容,整型(intTypes)整型子类(sub-intTypes)浮点型(Floating-PointType)C-串与string(C-string/错,08:54:37,6,.整型子类(Sub-intTypes),字符型:表示范围:有符号:-128127无符号:0255输出形式与整型数不同:inta=65;charb=65;couta“n”;coutb“n”;结果为:65A,08:54:37,7,枚举型:自定义整数区间,甚至列举单个整数值enumWeekMon,Tue,Wed,Thu,Fri,Sat,Sun;最大特点是可以给每个值指定一个在程序中直接使用的标记(枚举符)编程中将其当作整数常量用如:inta=7;if(a=Sun)cout“Sundayn”;,08:54:37,8,布尔型:表示范围仅含整数和1,也可以表示成true和false,相当于:enumboolfalse,true;因为条件表达式、逻辑运算的结果都是或,所以,相当大数量的表达式的值与布尔型对应,08:54:37,9,3.浮点型(Floating-PointTypes),浮点数的内部表示:国际标准IEEE754浮点表示法,它与编程所用的浮点数字面量以及输出的十进制浮点数之间有一个转换关系浮点数的表示范围:32位浮点数3.4103864位浮点数1.810308浮点数的操作:常规的加、减、乘、除等操作,08:54:37,10,4.C-串与string(C-stringcout*strendl;/显示Hcoutstrendl;/显示Hello,08:54:37,12,C-串不能直接比较,因为字符指针的比较只是地址值的比较而不是C-串的字典序比较:cout(“join”=”join”?”:”not“)”equaln”;/字面值比较char*str1=”good”;char*str2=”good”;cout(str1=str2?”:”not“)”equaln”;/字符指针比较charbuffer16=”Hello”;charbuffer26=”Hello”;cout(buffer1=buffer2?”:”not“)”equaln”;/字符数组比较结果:notequalnotequalnotequal,08:54:37,13,不得不配备专门操作C-串的库函数:strcpy(s1,s2);/从s2拷贝到s1strcmp(s1,s2);/比较s1与s2strcat(s1,s2);/连接s2到s1strrev(s);/将s倒排strset(s,c);/将s全置为cstrstr(s,“ell”);/查找s中的子串strchr(s,c);/查找s中的字符等等,08:54:37,14,但字符指针操作C-串的安全性受到质疑:char*str1;char*str2=newchar5;strcpy(str2,”ugly”);strcpy(str1,str2);/错:str1没有空间可储strcpy(str2,”Hello”);/错:str2空间不够大str2=”Hello”;/错:原来的”ugly”空间脱钩,导致内存泄漏根源:复制操作须以足够的目的地空间为前提,而所有C-串操作的空间调配都是人为安排的,C-串库函数一概不管,08:54:37,15,类串string串类自定义串对应字符指针的C-串操作:stringa,s1=Hello;strings2=123;a=s1;/copycout(a=s1?:not)equaln;/comparecouta+s2endl;/concatenatereverse(a.begin(),a.end();coutaendl;/reversecouta.replace(0,9,9,c)endl;/setcout(s1.find(ell)!=-1?:not)foundn;/findstringcout(s1.find(c)!=-1?:not)的读入方式总是将前导的空格(所谓空格,即包括空格、回车、水平或垂直制表符等)滤掉,将单词读入,在遇到空格时结束本次输入getline总是将行末的回车符滤掉,将其整行输入对字串”Hello,Howareyou?”的两种输入方式for(strings;cins;)couts”“;coutendl;strings;getline(cin,s);coutsa;sum+=a);coutsum“n”;,08:54:37,18,5.数组(Arrays),数组是同类元素的集合,它的元素排列在连续的空间中,按下标来标记描述数组必须给出元素类型,元素个数元素个数必须在编程时确定,任何变量都不允许intaa;/表示inta97;intn=100;intan;/错:元素个数必须预知constintn=100;intan;/okinta;/错:无元素个数inta=1,2,3,4,5;/ok:通过初始化确定元素个数,08:54:37,19,数组初始化可选,但须遵循语法无初始化的数组按规定取默认值intarray15=1,2,3,4,5,6;/错:初始值个数超元素个数intarray25=1,2,3,4;/错:不能以逗号方式省略intarray35=1,2,3,;/错:同上intarray45=;/错:初始值不能为空intarray55=1,2,3;/ok:后面元素取0intarray65=0;/ok:元素全为0intarray75;/ok:元素值不确定inta35=1,2,3,4,5,2,3,4,5,6,3,4,5,6,7;,08:54:37,20,数组有诸多缺陷,造成编程艰难和不安全inta5=1,2,3,4,5,c5;intb5=a;/错:无法拷贝创建c=a;/错:无法整体拷贝和局部拷贝a8=10;/错:无法动态扩容和随意增减元素for(inti=0;i=5;+i)/错:无法防范下标溢出ai=i+1;if(a=c)a0=2;/错:不可比较inta5=1;/初始化呆板,无法获得全初值,08:54:37,21,二维数组的初始化,下标访问及输出intarray123=1,2,3,4,5;intarray223=1,2,4;coutarray1:;for(inti=0;i2;+i)for(intj=0;j3;+j)coutarray1ij,;coutnarray2:;for(inti=0;i2;+i)for(intj=0;j3;+j)coutarray2ij,;coutn;结果为:array1:1,2,3,4,5,0,array2:1,2,0,4,0,0,08:54:37,22,.向量(vector),向量与数组的共同特征是元素的排列在逻辑上是线性序列结构,可以用下标进行访问向量可以按需创建,拷贝创建,局部拷贝创建,异类拷贝和创建灵活的初始化随意扩容和元素增减可通过异常来进行下标溢出追踪和处理可比较等等,08:54:37,23,intn=10;intt5=1,2,3,4,5;vectora(n);/按需创建vectorb(10,1);/元素赋全,灵活的初始化vectorc(b);/整体拷贝创建vectorf(t,t+5);/异类拷贝创建vectord(b.begin(),b.begin()+3);/局部拷贝创建d为b的前个元素a.assign(100);/动态扩容至100个元素,08:54:37,24,向量常用操作a.assign(b.begin(),b.begin()+3);/b的前3个元素赋给aa.assign(4,2);/a向量含4个元素,全初始化为2intx=a.back();/a的最后一个元素赋给变量xa.clear();/a向量清空(不再有元素)if(a.empty()cout”empty”;/a判空操作inty=a.front();/a的第一个元素赋给变量ya.pop_back();/删除a的最后一个元素a.push_back(5);/a最后插入一个元素,其值为5a.resize(10);/a元素个数调至10。多删少补,其值随机a.resize(10,2);/a元素个数调至10。多删少补,新添元素初值为2if(a=b)cout34.5iAddr:1245064=1107951616int:100float:1.4013e-43,08:54:37,28,指针加减整数的操作表示空间位置上的挪动但是挪动的字节数与其数据类型相关:对float指针加6实际增加了24个字节对longint指针加5实际增加了20个字节对char指针减7实际减少了7个字节对double指针减2实际减少了16个字节,08:54:37,29,数组名本身就是表示元素集合的首地址可以将数组名赋给指针inta3;for(inti=0;i3;+i)ai=i*2;for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届四川省自贡市富顺第三中学化学九年级第一学期期末教学质量检测模拟试题含解析
- 云南省昆明市祯祥中学2026届英语九上期末考试模拟试题含解析
- 山东省滨州市沾化县2026届英语九上期末学业水平测试试题含解析
- 天津市北辰区2026届九上化学期中联考模拟试题含解析
- 2024-2025七年级上学期期中英语试题
- 水力学测试题(附答案)
- 2025工作票三种人资格工作许可人考试题库及参考答案
- 2026届江苏省姜堰区张甸初级中学九年级英语第一学期期末质量检测模拟试题含解析
- 辽宁省盘锦市双台子区第一中学2026届九年级化学第一学期期中教学质量检测试题含解析
- 2026届四川省成都简阳市三星中学九年级化学第一学期期中统考试题含解析
- 夸美纽斯完整版本
- 儿童静脉输液治疗临床实践循证指南解读
- 《农村生活污水管网维护导则》
- 劳务合同结算单
- 现代信号处理课件
- 网络安全培训试题附有答案
- 聚焦任务的学习设计作业改革新视角
- 汽车发动机构造与拆装(第2版)全套教学课件
- 富士康员工手册(第10版)
- 公路隧道病害产生机理及防治对策
- ct室防辐射施工方案
评论
0/150
提交评论