☀️光天化日学C语言☀️(10)- 关系运算符 | 3 > 2 > 1 真的成立吗?
【摘要】 3 > 2 > 1 真的成立吗?
一、前言
本文作者是从 2007 年开始学 C语言 的,不久又接触了C++,基本就是 C/C++ 技术栈写了 14 年的样子,不算精通,但也算差强人意。著有《夜深人静写算法》系列,且承诺会持续更新,直到所有算法都学完。主要专攻 高中 OI 、大学 ACM、 职场 LeetCode 的全领域算法。由于文章中采用 C/C++ 的语法,于是就有不少读者朋友反馈语言层面就被劝退了,更何况是算法。
于是,2021 年 06 月 12 日,《光天化日学C语言》 应运而生。这个系列文章主要服务于高中生、大学生以及职场上想入坑C语言的志同道合之人,希望能给祖国引入更多编程方面的人才,并且让自己的青春不留遗憾!
这一章的主要内容是关系运算符,基本和数学中的大小关系判断无异,就当复习一下吧。
二、人物简介
- 第一位登场的就是今后会一直教我们C语言的老师 —— 光天。
- 第二位登场的则是今后会和大家一起学习C语言的没什么资质的小白程序猿 —— 化日。
三、关系运算符
1、概览
- 关系运算符是用来判断符号两边的数据的大小关系的。
- C语言中的关系运算符主要有六个,如下:
2、表示方式
- C语言中的关系运算符和数学中的含义相同,但是表示方法略有不同,区别如下:
关系运算符释义 | C语言表示 | 数学表示 |
---|---|---|
大于 | > | > |
大于等于 | >= | ≥ |
等于 | == | = |
不等于 | != | ≠ |
小于 | < | < |
小于等于 | <= | ≤ |
- 关系运算符的两边可以是变量、数值 或 表达式,例如:
1)变量
- a > b
- a != b
2)数值
- 3 > 5
- a == 6
3)表达式
- a + b > 4
- a > a + b
四、关系运算符的应用
1、运算结果
- 关系运算符的运算结果只有 0 或 1。当条件成立时结果为 1,条件不成立结果为 0。
- 我们来看一段代码,如下:
#include <stdio.h>
int main() {
printf("%d\n", 1 > 2);
printf("%d\n", 1 < 2);
return 0;
}
- 得到的输出结果为:
0
1
- 原因就是
1 > 2
在数学上是不成立的,所以结果为0
;而1 < 2
在数学上是不成立的,所以结果为1
;
2、运算符嵌套
- 关系运算符是允许嵌套使用的,即运算的结果可以继续作为关系运算符的运算参数,例如以下代码:
#include <stdio.h>
int main() {
printf("%d\n", 1 > 2 > -1);
return 0;
}
- 输出结果是多少呢?
- 由于
1 > 2
的结果为0
,所以1 > 2 > -1
等价于0 > -1
,显然是成立的,所以输出的结果为:
1
- 有关于结合性的内容,会在运算符的内容都讲完后,就运算符优先级和运算符结合性进行一个统一讲解,现在这个阶段,你只需要知道,关系运算符都是左结合,即存在多个运算符,有没有括号的情况下,一律从左往右计算。
【例题1】给出以下代码,问输出的结果是什么。
#include <stdio.h>
int main() {
printf("%d\n", 1 < 2 > 1);
printf("%d\n", 3 > 2 > 1);
return 0;
}
3、运算符优先级
!=
和==
的优先级低于>
,<
,>=
,<=
。- 优先级是什么呢?
- 看个例子就能明白。
#include <stdio.h>
int main() {
printf("%d\n", 1 < 2 == 1);
return 0;
}
- 我们可以做出两种假设:
- 假设1:
==
优先级低于<
;1 < 2
优先计算,则表达式等价于1 == 1
,成立,输出1
。 - 假设2:
==
优先级高于<
;2 == 1
优先计算,则表达式等价于1 < 0
,不成立,输出0
。 - 实际上,这段代码的结果为:
1
- 即
==
的优先级低于<
,当然,同学们可以试下!=
和其它符号的关系。
- 另外,关系表达式会进场用在条件判断
if
语句中,例如:
if(a < b) {
// TODO
}
- 我们会在将
if
语句的时候继续复习关系运算符相关的知识哦~
4、== 和 =
- 初学者最容易犯的错是把
==
和=
搞混,前者是判断相等与否,而后者是赋值。 - 看一段代码,就能知道:
#include <stdio.h>
int main() {
int a = 0;
printf("%d\n", a = 0);
printf("%d\n", a == 0);
return 0;
}
- 以上这段代码的输出结果是:
0
1
- 神不神奇,意不意外?!
通过这一章,我们学会了:
1)6种关系运算符;
2)关系运算符的嵌套;
3)关系运算符的优先级;
- 希望对你有帮助哦 ~ 当然,要多写代码尝试下文中提到的各种情况哦,祝大家早日成为 C 语言大神!
课后习题
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)