C语言基础学习笔记(3):关系运算符与逻辑运算符
图:北极狐(Artic Fox)
Guderian出品
C
语言的“短路”特性:若表达式的值可由先计算的左操作数的值单独推导出来,那么将不再计算右操作数的值。“短路”特性有时很有用,如(i != 0) && (j / i > 0)
使得不会发生除0
的情况。C
条件表达式:表达式1 ? 表达式2 : 表达式3
:如果表达式1
为真,则返回表达式2
;否则表达式3
。整数的数值溢出——上溢出:
|一个数值运算结果| > |类型能表示的最大数|
。进位超过最高位而发生进位丢失或进位达到最高位而改变符号位。对于无符号数,不能随意用
a - b < 0
取代a < b
,因为前者可能发生数值溢出,导致判断结果发生错误。浮点数的数值溢出,不仅有上溢出还有下溢出:
上溢出:
|数值运算结果| > |类型能表示的最大数|
下溢出:
|数值运算结果| < |类型能表示的最小数|
,此时系统把该结果处理成机器0
把
float
赋值给int
会丢失小数(不经四舍五入)。<stdlib.h>
中的exit(0)
终止整个程序的执行强制返回操作系统。当其参数为0
时表示正常退出,非0
表示程序出错。
【更多C语言系列】