Primer(第四版)学习笔记.docxVIP

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

在字符 中使用单引号、反斜杠时 要使用转义字符;在字符串中使用双引号、反斜杠时 要使用转义字符;\?可以不必使用转义字符,直接使用?即可;C++ 语言从 C 语言中继承下来的预处理器变量 NULL,该变量在 cstdlib头文件中定义, 其值为 0。如果在代码中使用了这个预处理器变量, 则编译时会自动被数值 0 替换。·大多数编译器,包括那些来自 IDE 的,都提供了命令行界面。除非你已经很熟悉你的 IDE, 否则从使用简单的命令行界面开始可能更容易些。 这样可以避免在学习语言之前得先去学习 IDE。 表示整数、字符和布尔值的算术类型合称为整型。bool 类型表示真值 true 和 false。可以将算术类型的任何值赋给 bool 对象。0 值算术类型代表 false,任何非 0 的值都代表 true。 除 bool 类型外,整型可以是带符号的(signed) 也可以是无符号的(unsigned)。整型 int、 short 和 long 都默认为带符号型。 要获得无符号型则必须指定该类型为 unsigned,比如 unsigned long。unsigned int 类型可以简写为 unsigned,也就是说,unsigned 后不加其他类型说明符意味着是 unsigned int 。1定义变量、指针最好在要使用之前定义,定义紧跟着使用,可读性强,也安全。2定义变量、指针最好定义时就初始化,除非确定之后就要初始化,养成好习惯。3如果必须分开定义指针和其所指向的对象,则将指针初始化为 0。因为编译器可检测出 0 值的指针,程序可判断该指针并未指向一个对象。对于内置类型的初始化:当为全局变量或静态变量时,没进行初始化的话,系统自行初始化为0;当为局部变量时,系统也不进行初始化,使用则出错。在数组中时,也同理。但是,假如仅初始化了其中的一个元素,则系统会自动初始化之后的元素,如:int型仅初始化第一个,之后的系统默认初始化为0;char型仅初始化第一个元素,之后的系统默认初始化为 \0对于类类型的初始化:无论是全局变量还是局部变量,米有进行初始化的话,其都将调用自己定义时的默认构造函数(不是构造函数)。如果没有定义默认构造函数的话,必须手动初始化,或必须有初始化的成员函数。如:string类型的默认构造函数即为初始化为空的字符串。像 42 这样的值, 在程序中被当作字面值常量。 称之为字面值是因为只能用它的值称呼它, 称之为常量是因为它的值不能修改。每个字面值都有相应的类型,例如:0 是 int 型,3.14159 是 double 型。只有内置类型存在字面值,没有类类型的字面值。因此,也没有任何标准库类型的字面值。两个相邻的仅由空格、 制表符或换行符分开的字符串字面值(或宽字符串字面值), 可连接成一个新字符串字面值。 这使得多行书写长字符串字面值变得简单: // concatenated long string literal std::cout a multi-line string literal using concatenation 除了关键字, C++ 标准还保留了一组标识符用于标准库。 标识符不能包含两个连续的下划线, 也不能以下划线开头后面紧跟一个大写字母。 有些标识符(在函数外定义的标识符)不能以下划线开头。 内置类型变量是否自动初始化取决于变量定义的位置。 在函数体外定义的变量都初始化成 0, 在函数体里定义的内置类型变量不进行自动初始化。 除了用作赋值操作符的左操作数, 未初始化变量用作任何其他用途都是没有定义的。 未初始化变量引起的错误难于发现。正如我们在第 2.2 节劝告的, 永远不要依赖未定义行为。 即使是静态变量。。。。建议每个内置类型的对象都要初始化。 虽然这样做并不总是必需的, 但是会更加容易和安全, 除非你确定忽略初始化式不会带来风险。const定义方式时必须初始化:const限定符提供了一个解决办法,它把一个对象转换成一个常量。因为常量在定义后就不能被修改,所以定义时必须初始化,可以初始化为字面值常量,或整型表达式,或变量。const int i, j = 0; // error: i is uninitialized const 而static静态局部变量仅能初始化一次。全局变量有static型,extern型两种;前置必须显式定义出来,后者不必显式定义,没注明的情况下即extern型的全局变量。static型仅在本文件可见,全程序不可见,extern型在全程序都可见,只是在外部文件得extern声明一下。const修饰的全局变量,除了不能修改外,仅能在本文件可见;extern const修饰的全局变量,不能被修改,在全程序都可见,但是需要extern const来声明一下。引用定义

文档评论(0)

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

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

1亿VIP精品文档

相关文档