一、简介三目运算符

1、三目运算符也叫条件运算符,结合方向是从右至左。

2、三目运算符仅此一个。

3、基本形式:      <表达式1> ? <表达式2> :  <表达式3>

4、比较原理:表达式1是否为真,如果为真,执行表达式2,否则执行表达式3.

例:a = 4 > 3 ? 1 : 0 ;   a的值为1.

5、如果在表达式中含有其他运算符,得考虑符号的优先等级(很重要!最好把表达式都带上括号)

二、三目运算符比较两个数之间的大小

1、基本形式:      <表达式1> ? <表达式2> :  <表达式3>

2、原理:在<表达式1>中存放判断条件,如果结果为真就输出<表达式2>,假就输出<表达式3>

例:a = 4 > 3 ? 1 : 0 ;   a的值为1(过于简单,不做赘述)

三、三目运算符比较三个数之间的大小

直接上例子(最朴素的办法,但是最容易理解)

//用三目运算符比较三个数的大小
#include<stdio.h>int main()
{int a = 3,b = 4,c = 5,max1,max2,max3;//max用来存储最大的数字//有三种不同的写法:
//max1的原理:先求A和B的最大值,再去和c比较
//max2的原理:先让A和B比较,A大就让A和C比较,反之B和C比较
//max3的原理:先让A和B比较,<表达式1>为真(A大)就让A和C比较,反之B和C比较max1 = (a > b ? a : b) > c ? (a > b ? a : b) : c ;max2 = a > b ? (a > c ? a : c) :(b > c ? b : c);max3 = (a > b ? a : b) ? (a > c ? a : c) : (b > c ? b : c);printf("max1:%d\n",max1);printf("max2:%d\n",max2);printf("max3:%d\n",max3);}

四、三目运算法比较四个数的大小(相对三,更容易理解)

上硬菜(看懂了上面,下面的嵌套也是一样的)

#include<stdio.h>int main()
{int a = 1 ,b = 2 , c = 3 , d = 4 ,z;z = ((a < b ? a : b) < (c < d ? c : d)) ? (a < b ? a : b) : (c < d ? c : d);printf("z:%d\n",z);
}

在往上面,还是一样的嵌套方法。可以一直套娃下去(套太多了,自己容易先晕)

PS:自己总结的知识点,难免会有纰漏,欢迎各位看官及时指正,小弟感激不尽

C语言——三目运算符的进阶用法,比较三个或者四个数的大小相关推荐

  1. TCP协议理解和用法以及三次握手四次分手

    TCP协议 1. TCP网络分层 应用层,传输层,网络互联层,网络访问层,物理层 应⽤层 应⽤程序之间如何相互传递报⽂,⽐如HTTP协议 传输层 传输层的作⽤是为两台主机之间的"应⽤进程&q ...

  2. 【C语言】创建一个函数,并调用比较两个数的大小

    #include <stdio.h>int max(int x,int y) { if(x>=y) return x; else return y; } main() { int a ...

  3. Go语言进阶推荐这样三本书

    编译一个大型的C或者C++项目所花费的时间甚至比去喝杯咖啡的时间还长.图1-1是XKCD中的一幅漫画,描述了在办公室里开小差的经典借口. 图1-1 努力工作?(来自XKCD) Go语言使用了更加智能的 ...

  4. Clause 开发技能之 CMake 进阶教程(三)

    书接上文:https://chatopera.blog.csdn.net/article/details/109025400 本文转载自[使用 CMake 组织 C++工程]3:CMake 函数和宏 ...

  5. C语言入门与进阶——typedef与#define

    C语言入门与进阶--突破typedef与#define C语言里提供了typedef关键字,可是会容易和#define指令搞混淆 那怎么弄清楚呢?且看下文, 一.typedef 在了解typedef具 ...

  6. 【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )

    文章目录 一.const 普通用法 二.常量指针 ( 指向 常量 的指针 | 被指向的内存不能被修改 ) 三.指针常量 ( 指针不能被修改 ) 三.指向 常量 的 指针常量 四.const 在 * 左 ...

  7. C语言入门之指针用法教程

    C语言入门之指针用法教程 这篇文章主要介绍了C语言入门之指针用法教程,主要对C语言中指针的本质及常见用法做了较为通俗易懂的分析,是后续深入学习C语言的基础,需要的朋友可以参考下 undefined u ...

  8. c语言中的指针语法,C语言中指针的用法介绍

    C语言中指针的用法介绍 for(int i=0;i { num+=*s;s++; } return num; ) 这个例子中的函数 fun统计一个字符串中各个字符的 ASCII 码值之和.前面说了,数 ...

  9. Android属性动画进阶用法

    2019独角兽企业重金招聘Python工程师标准>>> 在上周二文章中介绍补间动画缺点的时候有提到过,补间动画是只能对View对象进行动画操作的.而属性动画就不再受这个限制,它可以对 ...

最新文章

  1. mysql登录报错:ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)
  2. [推荐]在JavaScript中实现命名空间
  3. 网站百度索引量受哪些因素影响呢?
  4. 【MM模块】Cycle Counting 周期盘点
  5. bridge pattern -- 桥接模式
  6. 理解JS中的声明式与命令式
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的文档管理系统
  8. [小结] flexbox
  9. PWA--未来式app
  10. windows虚拟网卡驱动开发~开源(建议收藏)
  11. VS2012 打开项目后无法编辑
  12. 目标检测研究现状调研
  13. 微信撤回软件安卓版_微信拍一拍撤回软件下载
  14. 【嵌入式20】STM32F103完成对SD卡的数据读取详细操作
  15. python列表输出学生姓名学号链表_1. 建立一个学生信息的循环链表,每个节点里面包含了学生学号、姓名、籍贯三个信息。通过遍历,输出链表...
  16. 通过创建动态类型 动态构建Expression Select表达式来控制Property可见性
  17. 小区门禁卡可以复制到手机上吗_没有门禁卡怎么开门 门禁卡可以复制到手机里吗...
  18. php 支付宝支付 简书,PHP支付宝支付的代码分享(TP3.2框架)(一)
  19. matplotlib marker 设置
  20. 通用的商城系统后台管理ui框架模板

热门文章

  1. arm shell 获取本地键盘输入值_arm Linux 如何自动检测并mount SD卡,以及如何得知已经mount...
  2. 谷歌游览器提示“喔唷,奔溃啦!”报错误代码:STATUS_INVALID_IMAGE_HASH
  3. 华为服务器查看虚拟ip,裸金属服务器管理虚拟IP地址
  4. 裸金属服务器能降级虚拟机不,裸金属服务器属于虚拟机吗
  5. Dynamics 365 新建组织时一直提示识别不到Reporting Extensions
  6. 7-4 出圈游戏 (c 语言)PTA
  7. Kindle接入HomeAssistant:实现锁屏壁纸显示HA内设备信息并在HA内获取Kindle电量
  8. MySQL grant之后一定要跟随flush privileges么?
  9. 通信科技人员职业道德
  10. python求字典的平均值_获取字典列表中值的平均值