上次我们讲了关系运算符<=,>,!= 等符号
现在讲逻辑运算符, C 语言许多的运算符你是不是傻傻分不清楚, 只要你认真看完此文, 那都不是事.
小编推荐一个学 C 语言 / C++ 的学习裙[ 七三零, 一三零, 二二一 ] , 无论你是大牛还是小白, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
在高中数学中, 我们就学过逻辑运算, 例如 p 为真命题, q 为假命题, 那么 "p 且 q" 为假,"p 或 q" 为真,"非 q" 为真. 在 C 语言中, 也有类似的逻辑运算:
逻辑运算的结果
在编程中, 我们一般将零值称为 "假", 将非零值称为 "真". 逻辑运算的结果也只有 "真" 和 "假","真" 对应的值为 1,"假" 对应的值为 0.
1) 与运算(&&)
参与运算的两个表达式都为真时, 结果才为真, 否则为假. 例如:
5&&05 为真, 0 为假, 相与的结果为假, 也就是 0.
(5>0) && (4>2)5>0 的结果是 1, 为真, 4>2 结果是 1, 也为真, 所以相与的结果为真, 也就是 1.
2) 或运算(||)
参与运算的两个表达式只要有一个为真, 结果就为真; 两个表达式都为假时结果才为假. 例如:
10 || 010 为真, 0 为假, 相或的结果为真, 也就是 1.
(5>0) || (5>8)5>0 的结果是 1, 为真, 5>8 的结果是 0, 为假, 所以相或的结果为真, 也就是 1.
3) 非运算(!)
参与运算的表达式为真时, 结果为假; 参与运算的表达式为假时, 结果为真. 例如:
!00 为假, 非运算的结果为真, 也就是 1.
!(5>0)5>0 的结果是 1, 为真, 非运算的结果为假, 也就是 0.
输出逻辑运算的结果:
- #include
- int main(){
- int a = 0, b = 10, c = -6;
- int result_1 = a&&b, result_2 = c||0;
- printf("%d, %d", result_1, !c);
- printf("%d, %d", 9&&0, result_2);
- printf("%d, %d", b||100, 0&&0);
- return 0;
- }
运行结果:
小编推荐一个学 C 语言 / C++ 的学习裙[ 七三零, 一三零, 二二一 ] , 无论你是大牛还是小白, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
优先级
逻辑运算符和其它运算符优先级从低到高依次为:
赋值运算符(=) <&& 和 || < 关系运算符 < 算术运算符 < 非(!)
&& 和 || 低于关系运算符,! 高于算术运算符.
按照运算符的优先顺序可以得出:
a>b && c>d 等价于 (a>b)&&(c>d)
- !b==c||d
- a+b>c&&x+yc)&&((x+y)
小编推荐一个学 C 语言 / C++ 的学习裙[ 七三零, 一三零, 二二一 ] , 无论你是大牛还是小白, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
另外, 逻辑表达式也可以嵌套使用, 例如 a>b && b || 9>c,a || c>d && !p.
C 语言的常用运算符差不多了, 这个东西还是要记住啊, 主要是知识的积累,
来源: http://www.jianshu.com/p/ab9a54537b2c