逻辑和关系运算符
4.3 逻辑和关系运算符
关系运算符作用于算术类型或指针类型,逻辑运算符作用于任意能转换成布尔值的类型。
逻辑运算符和关系运算符的返回值都是布尔类型。
关系运算符和逻辑运算符的运算对象、求值结果都是右值。
逻辑与&&
和逻辑或||
运算符
对于逻辑与:当且仅当两个运算对象都为真时结果为真;
对于逻辑或:只要两个运算对象中的一个为真结果就为真。
逻辑与和逻辑或运算符都是左结合律,当且仅当左侧运算对象无法确定表达式的结果时才会计算右侧运算对象的值。这种策略称为短路求值(short-circuit evaluation)。
// s 是对常量的引用;元素既没有拷贝也不会被改变
for(const auto &s : text){
cout << s;
// 遇到空字符或以句号结束的字符串进行换行
if (s.empty() || s[s.size() - 1] == '.'){
cout << endl;
} else {
cout << " "; // 输出空格
}
}
逻辑非!
运算符
逻辑非运算符将运算对象的值取反后返回。
关系运算符
关系运算符比较运算对象的大小关系并返回布尔值。满足左结合律。
相等性测试与布尔字面值