成员访问运算符
点运算符(.)和箭头运算符(->)都可以用于访问成员,ptr->mem
等价于 (*ptr).mem
。
箭头运算符作用于一个指针类型的运算对象,结果是一个左值。
点运算符分为两种情况:
- 如果成员所属的对象是左值,那么结果是左值。
- 如果成员所属的对象是右值,那么结果是右值。
条件运算符
条件运算符(?:)可以把简单的 if-else
语句嵌入到单个表达式中。
cond ? expr1 : expr2;
首先求 cond
的值,如果条件为真对 expr1
求值并返回该值,否则对 expr2
求值并返回该值。
嵌套条件运算符
允许在条件运算符的内部嵌套另外一个条件运算符:
final_grade = (grade >= 90) ? "high pass" : (grade < 60) ? "fail" : "pass";
条件运算符满足右结合律,意味着运算对象按照从右向左的顺序结合,所以上面的代码,靠右边的条件运算(比较成绩是否小于60)构成了靠左边的条件运算的分支。