下面给大家介绍一个三目运算符,即?:


首先介绍一个概念,所谓的“”是指这个运算符参与运算的对象个数

比如前面我们介绍了+、-、*、\等等运算符,这些需要两个数或者变量运算,所以就属于双目运算符;而++和--一个对象就可以组合,这种就是单目运算符,很好理解,那么今天所提到的三目,当然就是有三个对象参与运算了!这可是C语言当中唯一一个三目运算符,它就是选择运算符


它的一般形式是通过?和:两个符号组合而成的,一般形式如下:

表达式1?表达式2:表达式3


这什么意思呢?首先计算表达式1的值,看看是真还是假,也就是成立还是不成立,如果表达式1成立,那么这个三目运算符整体的值就是表达式2的值,否则(也就是表达式1不成立),这个三目运算符整体的值就是表达式3的值。怎么样,看明白了吗?


下面举个例子说明一下:

2>1?10:20

这个表达式整体的值是几呢?答案应该是10,因为2>1成立,因此它的值就是表达式2的值,也就是10。


再比如:

int a=3,b=5;
int c=10;
c?:(a+b):(a-b)

这个表达式的值呢?大家先算算,应该是8,为什么呢?因为表达式1也就是c的值(10)为真,所以就是表达式2的值也就是a+b就是8。这下大家明白了吧!


这就是三目运算符的用法,大家可以理解一下!


其实本质上是一种选择结构,根据表达式1的成立与否,决定是表达式2还是表达式3,大家理解一下然后上机实验一下!


点赞(2)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)