C++ Prime 总结.docxVIP

  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文档。上传文档
查看更多
CPrime总结

/pgx1030/archive/2011/12/29/2305524.html这是去年寒假读完第一遍《C++ Primer》的时候做的一些总结,刚才整理资料的时候翻到了,就先粘过来吧。浮点数:float只能保证6位有效数字,double只能保证10位有效数字。一般而言,对付典型的比较需要使用大于或小于,而不使用等于或不等于,其根本原因在于计算机对于浮点数的存储方式使浮点数存储精度过低。?字面值常量:整形字面值常量默认为int或long,浮点型字面值常量默认为double,字符串字面值常量默认为C风格字符串。编写代码时可以利用\将长代码分行,特别对于较长的字面值常量来说,非常管用。?初始化:内置类型在函数体外定义时被初始化为0,类对象根据构造函数初始化。一般而言,变量在定义时应显示初始化,以避免未初始化的对象被使用。C++对象的初始化分为直接初始化与复制初始化,直接初始化将对变量直接进行初始化,复制初始化将在初始化时先建立一个临时对象,然后调用变量的复制构造函数将临时对象复制给变量。需注意,复制初始化与直接初始化不同,同时,初始化与赋值也不同,需注意区分。例如:int a(10);//直接初始化int b=10;//复制初始化,先建立一个int型临时变量,值为10,然后将临时变量复制给bint c;c=10;//赋值,不是初始化?const限定符:一般字面值常量应该赋值给const变量,防止出现魔数。在全局作用域声明中,const对象默认为文件的局部变量,非const变量默认为extern。如果const变量需要在其他文件中使用,需在变量定义时显示声明为extern。在遇到const限定符时建议从右往左读,const限定符修饰了的类型就是常类型,例如:const int a=10;//a为常整型,const修饰了int。const int *p=a;//p为指向常整型的指针,const修饰了int 。int *const q=a;//q为指向整数的常指针,const修饰了变量q,该指针不能改变,指针指向的值可以改变,由于此处指向的是常整 数,因此指向的值也不能改变。在类中,const成员变量必须在构造函数初始化列表中进行初始化,const成员函数中的const修饰符改变了this指针的性质,该函数只能做读取操作,不能做修改操作,注意从const成员函数中返回的值仍为const类型。const对象(类对象)、指向const对象的指针或引用只能调用const成员函数,以防止const对象被改变。(const用法较多,此处只是简略说明,更多内容请看C++Primer)?引用:可以建立任意对象的引用,因此可以建立指针的引用,例如: int *a = new int(10); int *b=a;//b是一个指针的引用,引用的对象为一个指针,使用b时仍然需要按照指针的方法使用,*b值为10,b为b所指向的内存空间的地址。引用必须在定义时初始化,一旦初始化后就不能改变引用对象。引用实际上为被引用变量的别名,两个变量指向同一块内存空间。例如:  int a=10; int b=a;//b为a的引用,a与b指向同一块内存空间 int c;//错误 c=a;//错误?在类中定义的引用数据成员只能在构造函数初始化列表中初始化。?引用常用于函数的形参,函数形参使用地址传递时常使用引用或指针。使用引用可以使函数实参在函数内部被直接改变,减少形参传递时的时间消耗。?typedef:由typedef定义的数据可以代替其类型来使用。例如:typedef void *p(void *temp);//这里的p可以作为一种函数类型来使用,由类型p定义的变量均为指定类型(返回一个void型指针,且参数为一个指针)的函数。?typedef主要用于隐藏复杂类型或使数据类型更为容易理解。详细内容请参考文章《typedef四个用途和两大陷阱》。?数组:数组中可以存放任意类型的对象。因此可以建立指针数组,多维数组(可以理解为数组中的每一个存储单元存储的内容仍为数组)。数组中对象的初始化遵循常规对象初始化的规则,如:引用变量必须在建立时进行初始化,引用数组建立时必须对数组中的所有元素进行初始化。sizeof运算符可以求出表达式结果所占的字节数,当表达式为数组名时,可以求出该数组所占的字节数,用sizeof(数组名)/sizeof(数组类型)可以求出数组长度。当数组名被用于表达式时,数组名转化为指针,其实为数组名所代表的地址(数组中第一个元素的地址)被赋值给一个临时的指针变量,由指针变量完成其余操作,数组名保持其属性不变。?指针:可以建立指向任意对象的指针,因此可以建立指向指针的指针,指向函数的指针,指向数组的指针等等。指针所占用的字内存空间长度为一个字长(在32位系统中为4个字

文档评论(0)

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

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

1亿VIP精品文档

相关文档