C++primer学习笔记-----4.5~4.7

4.5 递增和递减运算符


【递增运算符(++) 和递减运算符(--) 为对象的加1 和减1 操作提供了一种简洁的书写形式。
这两个运算符还可应用于迭代器,因为 很多迭代器本身不支持算数运算,所以此时递增和递减运算符除了书写简洁外还是必须的。】

【除非必须,否则不用递增递减运算符的后置版本;
形如*ptr++ 的表达式一开始可能不太容易理解,但其实这是一种被广泛使用的、有效的写法
cout << *ptr++ << endl;
// 等价于 cout << *ptr << endl; ptr++;

4.6 成员访问运算符


【点运算符和箭头运算符都可用与访问成员。】

4.7 条件运算符


【条件运算符(?:) 允许我们 把简单的if-else 逻辑嵌入到单个表达式中,条件运算符按照如下形式使用:
cond?expr1:expr2
其中cond 是判断条件的表达式,而expr1 和expr2 是两个 类型相同或可能转换为某个公共类型的表达式。
含有条件运算符的代码单元通常当作依条件发生变化的表达式来使用。】

【当条件运算符的 两个表达式都是左值或者能转换成同一种左值类型时,运算的结果是左值;否则运算的结果是右值。】

【允许在条件运算符的内部嵌套另外一个条件运算符:
finalgrade = (grade >= 90) ? "high pass"
                          : (grade < 60) ? "fail" : "pass";
条件运算符的嵌套最好别超过两到三层,因为会使程序可读性下降。】

条件运算符的优先级非常低,因此当一条长表达式中嵌套了条件运算子表达式时,通常需要在它两端加上括号:
cout << ((grade < 60) ? "fail" : "pass"); // 输出pass 或fail
cout << (grade < 60) ? "fail" : "pass"; // 输出1 或0
cout << grade < 60 ? "fail" : "pass" // 错误:试图比较cout 和60

你可能感兴趣的:(C++primer,c++)