1. 与:&&(左右两个表达式均为真才表示真)
  2. 或:||(左右两个表达式至少一个为真才表示真)
  3. 非:!(相当于取反,对真做非运算为假,对假做非运算为真)
  4. int m = 20; int n = 30; if (m == 20 && n == 30) { cout << "m == 10 , n == 30" << endl; } if (m == 20 || n == 40) { cout << "两个表达式至少一个为真" << endl; } if (!(m < 20)) { cout << "!(m < 20)" << endl; } /*结果: m == 10 , n == 30 两个表达式至少一个为真 !(m < 20) */
  5. 短路问题
  • 主要是针对逻辑与和逻辑或
  • 对于逻辑与&&:如果第一个表达式检测到为假,那么剩下的表达式不再进行检查。
  • 对于逻辑或||:如果第一个表达式检测到为真,那么剩下的表达式不再进行检查。
  1. 通过短路问题来判断类中的函数是否被初始化、是否为空
    MyClass *myClass; ... //myClass.process() if(myClass != NULL && myClass.process()) { ... }