C++考前复习简略知识点.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++考前复习简略知识点.doc

C++考前复习简略知识点 第五章 数组与指针 1,数组不能进行整体访问和处理,比如要输出数组,不能使用coutget[ ];这样的语句,而要采用循环 2,数组做为函数的参数时,一维数组[ ]中是空的,多维数组只可省略最高维 3,再次强调,有n个数据的数组,下标是从0到n-1,所以循环语句应该写为for(i=0;in;i++)couta[i];不是= 4,在对指针进行操作前,一定要确定指向,否则产生严重后果 5,指针常量和常量指针 指针常量 例:int *const p;指针的指向不能改变,但是值可以变 常量指针 例:const int *p;指针的指向可以改变,但是那个值不能改变 这个有点不太好记忆,常量指针重点是常量,值不能变 6,this指针是指向对象的,this指针不一定都要写成显示的,静态成员函数没有this指针 7,数组名是首元素的地址,大家都知道,但是不能用a++这样的形式来指向a[1],因为数组名可以理解为是一个指针常量,指向不能改变。 8,指针相减,如果*p1和*p2是分别指向a[2]和a[6]的指针,那么p2-p1就等于4,中间元素的个数 9,指向多维数组的指针比较复杂,还是记几个例子吧(用-代表文字指向,但是语法上是错的哈) Int b[4][4]??? b+3-b[3]这里我的理解就是二维数组是由一维数组作为元素的数组,所以指向的是整个第三行 *(b+3)-b[3][0]???? *(*(b+3))=b[3][0] *(b+3)+3-b[3][3]?? *(*(b+3)+3)=b[3][3] 理解很重要。。。 10,指针做函数参数,实参必须是地址或者数组名;引用做函数参数,实参必须是变量或对象本身。实参为数组的时候,只能用指针而不能引用,因为数组的引用不存在 11,函数的返回值如果是指针的话,那么它所指向的那个数据生命期不应该只在函数中,所以应该是全局变量等(我只知道个全局变量。。。) 12,一些比较常用的字符串处理函数strcat---catenate(连接)? strcmp----compare(比较) ?? strcpy---copy(复制)?? strlen---length(长度)头函数名#includecstring 当然处理字符串用string类是最方便的啦,头函数名#includestring ? 第六章 模板与数据结构 13,模板参数名要是正确的标识符,以字母或_开头,包含字母、数字、字符,不会与会变蓝色的关键字重名 14,对半查找法,关键的地方就在于low=mid+1 和high=mid-1,以及最开始的mid= -1赋初值,升序对半插入排序法类似 15,升序直接插入排序法,从第一个开始循环,与它前面所有的元素一一比较,直到找到第一个比它小的,排它后面。注意,查找与移动同时进行 16,冒泡排序法,两两比较,依次将小的数推前,注意布尔数noswap的用法,开始置ture,有交换的话置false,判断循环的条件就是if(noswap) 17,直接选择排序,从第一个开始循环,找出它后面的最小的那个元素,和其交换 18,指针数组,例*name[7],每个元素都是一个指针,比二维数组节省空间 O N E ? ? T W O ? ? T H R E E ? 如果用a[3][5]的二维数组,则要浪费4个存储单元 ? 19,当一个函数需要将另一个函数作为参数的时候,必须借用指向函数的指针,因为函数本身不可以做参数 定义一个指向函数的指针,并初始化,例 int (*pf)(char*,char*)=scopy; 其中函数名scopy就是该函数的入口地址,类似于数组名是数组存储区域的开始地址 20,指向类成员的指针,必须指明属于哪个类,例 Float(Student::*pf)()=Student::SetScore;则该指针指向了Student类里的成员函数SetScore,语句student1.*pf就相当于调用了student1.SetScore 同样也有指向数组成员的指针 21,由于静态成员函数没有this指针,所以指向静态成员函数的指针是普通指针 ? 第七章 动态内存分配 22,new运算符返回的是一个指向所分配类型变量(对象)的指针,必须显式初始化。例 int *p=new int(5); P为指针变量名,5是初始化式 23,delete释放的是指针所指的目标的内存空间,但指针本身依然存在,该指针本身所占内存空间并未释放 24,撤销动态数组的空间时,注意方括号[]的使用 delete []p? 撤销整个数组 delete p??? 只撤销数组的第一个元素 25,用动态分配来定义数组的最大优点就是,大小可以根据实际需要来更改,不像静态分配,经常“大开小用”,浪

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档