C语言 逻辑表达式的更优写法
本文将介绍逻辑表达式的更优写法,从而避免许多问题。
一、C语言中的逻辑运算符
运算符 | 含义 | 举例 | 说明 |
---|---|---|---|
&& | 与 | a&&b | 仅当a,b同时为真时,结果为真 |
|| | 或 | a||b | a,b有一个为真,则结果为真 |
! | 非 | !a | 若a真,则结果为假;若a假,则结果为真 |
二、需要记住的特性
1.运算优先级
非 >> 算术运算符 >> 关系运算符 >> 与和或 >> 赋值运算符
2.从左至右扫描
3.并不是所有的逻辑运算符都会被执行
例如:
a&&b
当 a 为假,结果必定为假,不会(也没必要)再判断 b 。
a||b
当 b 为真时,结果必定为真,不会(也没必要)再判断 b 。
三、总结
1.避免数组越界
例如:
假设 str[ ] 的数组长度为 strsize ,下标范围为 0~strsize-1
。
错误写法:
1 |
|
当 i==strsize
时,会首先判断 str[i] ,此时便会发生数组越界的错误。
更优写法:
1 |
|
将判断条件调换顺序,优先判断“安全条件”,便可以很好地防止数组越界问题。
参考
- C Primer Plus
- C程序设计
- C 语言教程 | 菜鸟教程