我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重点说一说C语言中到底是非0表示真,还是1表示真?这就是说到C语言中的两个常见运算形式,即关系运算符和逻辑运算符。
为照顾急性子的同学,先直接说结论:
关系运算符和逻辑运算符用“真”和“假”表示运算的结果,非0的值在关系运算中被视为“真”,0表示“假”。逻辑运算的结果用整型数据1表示“真”,用整型数据0表示“假”。
下面详细来看,
一、关系运算
1.关系运算符
每个关系运算符对它左侧值和右侧值进行比较大小的运算
2.关系表达式
用关系运算符连接起来的式子。若关系为真,关系表达式的值为1;若关系为假,关系表达式的值为0;
3.优先级
关系运算符优先级低于算术运算符,高于赋值运算符。
下表显示了 C 语言支持的所有关系运算符。假设变量 A 的值为 1,变量 B 的值为 2,则:
二、逻辑运算
1.逻辑运算符
逻辑运算符的运算对象通常是关系表达式。
&& 逻辑与 两边运算量都为1时,结果为真
|| 逻辑或 两边运算量都为0时,结果为假,否则为真
! 逻辑非 使操作数的值0变1,1变0
说明:
&& 和||是‚双目运算符,要求有两个操作数。! 是单目运算符,只要求有一个操作数。
2.逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起来的式子。
a&&b a、b均为1, 则a&&b为1
a||b a、b之一为1,则a||b为1
!a 若a为真,则!a为假
3.优先级
!运算符优先级高于算术运算符,与自增自减运算符同级。
&&运算符优先级高于||,两者的优先级都低于关系运算符,高于赋值运算符。
下表显示了 C 语言支持的所有逻辑运算符。假设变量 A 的值为 1,变量 B 的值为 0,则:
作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。