文档章节

C语言的逻辑运算符

 倒吊的蜗牛
发布于 2015/01/09 21:20
字数 679
阅读 4
收藏 0

C语言基础,在笔试中经常出现。

一、a && b && c

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a=0,b=0,c=0,value=0;
    value = a&&(b=1)&&(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    value = (a=1)&&(b=0)&&(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    value = (a=1)&&(b=1)&&(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    return 0;
}

输出为:

value=0 a=0 b=0 c=0

value=0 a=1 b=0 c=0

value=1 a=1 b=1 c=1

解析:表达式是从左到右执行的。前面的值为假,后面的不执行;只有当都为真是,整个表达式才为真。

二、a || b || c

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a=0,b=0,c=0,value=0;
    value = (a=1)||(b=1)||(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    value = (a=0)||(b=1)||(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    value = (a=0)||(b=0)||(c=0);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    return 0;
}

输出为:

value=1 a=1 b=0 c=0

value=1 a=0 b=1 c=0

value=0 a=0 b=0 c=0

解析:表达式是从左到右执行的,前面为真,后面的不执行;只有都为假时,表达式才为假。

三、 a && b || c

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a=0,b=0,c=0,value=0;
    value = (a=1)&&(b=1)||(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    
    a=0,b=0,c=0,value=0;
    value = (a=0)&&(b=1)||(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    
    a=0,b=0,c=0,value=0;
    value = (a=1)&&(b=0)||(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    return 0;
}

输出为:

value=1 a=1 b=1 c=0

value=1 a=0 b=0 c=1

value=1 a=1 b=0 c=1

解析:逻辑与(&&)的优先级高于逻辑或(||)表达式"a && b || c"相当于"(a&&b) || c",

当逻辑与的结果为假时,才进行逻辑或运算。

四、a || b && c

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a=0,b=0,c=0,value=0;
    value = (a=1)||(b=1)&&(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    
    a=0,b=0,c=0,value=0;
    value = (a=0)||(b=1)&&(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    
    a=0,b=0,c=0,value=0;
    value = (a=0)||(b=0)&&(c=1);
    printf("value=%d a=%d b=%d c=%d\n", value, a, b, c);
    return 0;
}

输出为:

value=1 a=1 b=0 c=0

value=1 a=0 b=1 c=1

value=0 a=0 b=0 c=0

解析:因为逻辑与的优先级高于逻辑或,所以"a || b && c"相当于"a || (b&&c)";从左到右执行。

先执行逻辑或再进行逻辑与运算。

© 著作权归作者所有

粉丝 0
博文 6
码字总数 2744
作品 0
大连
私信 提问
C优先级的口诀

学习C语言也有一段时间了,感觉C语言的运算符优先级很难记住,特别是对于初学者而言! 也许你会说没有记住没关系,用括号来改变优先级就可以了。但是很多情况下,因为依赖括号很容易导致程序...

长平狐
2012/09/03
139
0
Python基础(二)运算符

Python支持以下类型的运算符: 算术运算符 比较运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 0.算术运算符 与c语言等一样,有两个特有的运算符: 幂运算 102=100 取整除 9/...

Zorn_Q
2017/11/20
0
0
c运算符和优先级

计算机等级考试 C语言运算符的“优先级口决” C语言运算符的“优先级口决” 希望对初学C语言语言的朋友有所帮助; 当然,应用这个口诀的前提是你必须认识所有的C语言的运算符。 优先级口诀 括...

zhaozhiliang521
2017/02/08
0
0
C语言逻辑运算符和表达式

C语言逻辑运算符和表达式 Mindy2017-03-1236 阅读 C语言运算符表达式 C语言中提供了三种逻辑运算符: &&(与运算) ||(或运算) !(非运算) 与运算符(&&)和或运算符(||)均为双目运算符。具...

Mindy
2017/03/12
0
0
七、基本语句和运算

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 一、基本语句 C语言...

长平狐
2013/03/28
49
0

没有更多内容

加载失败,请刷新页面

加载更多

Leetcode PHP题解--D118 350. Intersection of Two Arrays II

D118 350. Intersection of Two Arrays II 题目链接 350. Intersection of Two Arrays II 题目分析 返回给定两个数组的交集。 思路 从数量较多的那个数组开始去另一个数组寻找是否元素存在,...

skys215
13分钟前
2
0
从源码上分析Android View保存数据状态

在Android开发旅途中,经常会遇到系统控件无法满足我们的视觉,交互效果,这个时候我们常常需要自己自定义控件来满足我们的需求。在这个开发探索过程中,我们不可避免得遇到View要保存状态信...

shzwork
14分钟前
2
0
请问AD603AQ和AD603AR有什么区别?

  AD603AQ和AD603AR只是在封装上的区别,前者是双列直插式,后者是贴片式,AD603A系列的温度都是在—40摄氏度到+85摄氏度之间,AD603还有一个系列是AD603S,它的温度是在—55摄氏度到+125摄...

仙溪
15分钟前
2
0
Linux /etc/profile 配置文件修改

1. 执行命令: vi /etc/profile 去类似windows 配置环境变量, 2.修改完,立即生效命令: source /etc/profile

kuchawyz
16分钟前
2
0
对于小白来说素描怎么入门?怎么学习?

素描初学者怎样入门?初学者怎样才能画好素描绘画?画好素描绘画有哪些技巧?想必这些问题都是绘画初学者们比较伤脑筋的问题,那么初学者到底怎样才能画好素描绘画呢?今天收集整理了关于素描...

huihuajiaocheng
17分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部