《C++ Primer Plus》第六章学习笔记

 

69:Cout << ‘a’ + 1         //得到的结果为98

 

70:C++规定,||操作符是一个顺序点(sequence point)。也就是说,先修改左侧的值,然后再对右侧的值进行判定。例如:i++ < 6 || i == j ,假设i原来是10,则i和j比较时,i的值将为11。另外,如果左侧的值为true,则C++将不会去判定右侧表达式的值。(冒号和逗号操作符也是顺序点)

 

71:&&操作符也是一个顺序点。如果左侧为false,则不会再判定右侧表达式。

 

72:数学表达式10<x<20在C++中合法,但达不到想要的效果,< 操作符从左向右结合,等同于(10<x)<20, (10<x)要么为true(1),要么为false(0),不管哪种,都比20小,所以表达式的值恒为true。

 

73:!操作符的优先级高于所有的关系操作符和算术操作符。&&操作符优先级高于||操作符。推荐在无论何时都加括号,容易阅读,避免读者查看不常用的规则,减少出错可能。

 

74:用switch语句注意加break。

 

75:和C语言一样,C++也有goto语句。在大多数情况下,使用goto语句不好,而应该使用结构化控制语句(如if else、switch、continue等)来控制程序的流程。

 

76:fstream类中的成员函数open()只接受C风格字符串,若想将string对象作为参数,则需使用string类的c_str()返回一个指针。

 

77:exit(int)函数用于终止程序,在cstdlib库中。

 

78:inFile >> value的返回值为inFile,而在需要一个bool值得情况下,inFile的结果为inFile.good(),即true或false。

 

书中的错误:

P149 倒数第四行tota漏了个l;

P157 程序说明第二行的”<=”应为”>=”;

P160第八行多了个isdigit()多了个s;

P172 6.8.2第7行,” >> ” 应改为” << ”;

 P174 6.8.3第6行,”<<”应改为”>>” (这两个都是明显的错误,为什么翻译的时候不改掉呢);

P177最后一段漏了一个d;

 

posted on 2012-01-14 20:33  zyearn  阅读(124)  评论(0编辑  收藏  举报