C语言中的关系运算符与逻辑运算符 您所在的位置:网站首页 c语言运算括号 C语言中的关系运算符与逻辑运算符

C语言中的关系运算符与逻辑运算符

2023-03-22 08:50| 来源: 网络整理| 查看: 265

在算数运算符那一节中,我们学习了以下几种运算符以及它们的优先级。

标记操作符类型优先级++ --自增、自减后缀16++ --自增、自减前缀15+ -正号,负号单目15* / %乘、除、取余双目13+ -加、减双目12=赋值双目2

本节中,我们将继续熟悉更多的运算符。

1. 关系运算符1.1 大于 > 和 小于 2); printf("%d\n", 1

表达式结果: 表达式关系成立,表达式结果为真。在C语言中,用1表示真。 表达式关系不成立,表达式结果为假。在C语言中,用0表示假

例如: 1 < 2,表达式关系成立,表达式结果为真,即1。 1 > 2,表达式关系不成立,表达式结果为假,即0。

大于、小于关系表现在数轴上,如下图所示。注意,N点为空心。也就是不能取N。

由于不能取值为N点,因此以下两个表达式均为假。 1 > 1,为假。 1 < 1,为假。

1.2 大于等于 >= 和 小于等于 #include int main() { printf("%d\n", 1 >= 1); printf("%d\n", 1

现在可以取值为N点,因此以下两个表达式均为真。

1 >= 1 //为真 1 = 2,真 10 >= 10,真 2 >= 10,假 小于等于: 10

我们在上面了解了大于等于和小于等于的用法,但是目前好像没法表示上面这两个数轴的区间。

第一个数轴区间:x = 10

由于数值只要符合任意一个条件就满足要求,所以这里我们用

第二个数轴区间:x >= 2 且 x = 2) && (x =、

假如我们用了一个运算符,放在中间。我们预想的效果是,先两边,两边的结果再进行中间的?运算。(假设有?运算符)。如果?的优先级低于=那么一切将照常运行。问题是,如果?的优先级高于两边呢?那么2 ? x会先进行运算。这样程序运行的结果就会超出你的预料了。

3.2 逻辑非 !

使用逻辑非运算符,我们可以对当前的结果,取它的反向。

例如,2 != 3,为真,但是如果加上逻辑非之后呢。

#include int main() { printf("%d\n", 2 != 3); printf("%d\n", !(2 != 3)); // 尽量使用多一些的括号清晰地表达意图 return 0; }2 != 3,2不等于3,表达式结果为真。 !(2 != 3),将结果真取反向,表达式结果为假。

那我们再看看上面的区间,如果被逻辑非之后呢?

(x = 10) 加上逻辑非,!( (x = 10) )。

(x >= 2) && (x = 2) && (x 4. 运算符优先级

标记操作符类型优先级++ --自增、自减后缀16++ --自增、自减前缀15!逻辑非单目15+ -正号,负号单目15* / %乘、除、取余双目13+ -加、减双目12< > =关系双目10== !=相等、不相等双目9&&逻辑与双目5||逻辑或双目4=赋值双目2

让我们根据上面的优先级列表计算下面表达式的结果:

int a; int i = 0; a = 9 / 3 + 1 * -2 && ++i || !6;

表达式中含有的运算符优先级依次为:

标记操作符类型优先级++ --自增、自减后缀16!逻辑非单目15+ -正号,负号单目15* / %乘、除、取余双目13+ -加、减双目12&&逻辑与双目5||逻辑或双目4=赋值双目2

- THE END -

点击以下链接获取更多课程:

01. 课程介绍

02. VS开发环境的搭建

03. 第一个C语言程序

04. 基本的C语言语法知识

05. 整型数据类型

06. 浮点数据类型

07. 变量与常量

08. 字符常量及字符变量

09. printf函数详细解析

10. printf函数深入讨论

11. scanf函数

12. 运算符与表达式

13. 类型转换

14. 关系运算符与逻辑运算符

15. 分支结构

16. 循环结构

17. 循环辅助

18. 多重选择

19. 初识数组

20. 多维数组

21. 字符串与字符数组

22. 输入输出缓存

23. 函数

24. 函数递归

25. 调试代码

26. 初识指针

27. 指针运算

28. 指针与数组

29. 指针作为参数传递

后续更多课程



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有