1.N目运算符

像逻辑非(!)、负号(-)这种只连接一个数据的符号,称为“单目运算符”,比如!5、-5。
像算术运算符、关系运算符、逻辑运算符这种连接二个数据的负号,称为“双目运算符”,比如6+7、8*5、5>6、4 && 0、
以此类推,连接3个数据的运算符,应该称为“三目运算符”

2.三目运算符

C语言提供了唯一一个三目运算符:条件运算符。
1> 使用格式

表达式A ? 表达式B : 表达式C
2> 运算结果

如果表达式A成立,也就是为“真”,条件运算符的结果就是表达式B的值,否则,就为表达式C的值
3> 结合方向和优先级

优先级顺序为:算术运算符 > 关系运算符 > 条件运算符 > 赋值运算符
条件运算符的结合方向是“从右至左”

int a = 3>4 ? 4+5 : 5>4 ? 5+6 : 6>7+1;

上面的代码等价于

int a = (3>4) ? (4+5) : ( (5>4) ? (5+6) : (6>(7+1)) );

简化一下就是

int a = 0 ? 9 : ( 1 ? 11 : 0 );

继续简化为

int a = 0 ? 9 : 11;

所以a的值是11

 1 // 三目运算符  条件 ? 数值1 : 数值2
 2
 3 //int a = !100 ? 9 : 89;
 4
 5 //printf("a=%d\n", a);
 6
 7
 8 #include <stdio.h>
 9
10 int main()
11 {
12     /* 计算2个整数之间的最大值
13     int a = 10;
14
15     int b = 99;
16
17     int c = a>b ? a : b;
18
19      printf("c is %d\n", c);
20     */
21
22     // 计算3个整数之间的最大值
23     int a = 10;
24     int b = 999999;
25     int c = 1000;
26
27      // 求出a、b的最大值
28     int abMax = (a > b) ? a : b;
29     // 求出最终的最大值
30     int d = (abMax > c) ? abMax : c;
31
32     //int d = (((a > b) ? a : b) > c) ? ((a > b) ? a : b) : c;
33
34     printf("d is %d\n", d);
35     return 0;
36 }

iOS开发-【C语言】三目运算符的更多相关文章

  1. 李洪强漫谈iOS开发[C语言-043]-判断较早日期

    李洪强漫谈iOS开发[C语言-043]-判断较早日期

  2. 李洪强漫谈iOS开发[C语言-043]-练习

    李洪强漫谈iOS开发[C语言-043]-行李重量计算价格

  3. 李洪强漫谈iOS开发[C语言-042]-简单计算器

    李洪强漫谈iOS开发[C语言-042]-简单计算器

  4. 李洪强漫谈iOS开发[C语言-041]-计算月份天数

    李洪强漫谈iOS开发[C语言-041]-计算月份天数 

  5. 李洪强漫谈iOS开发[C语言-040]-switch case

    李洪强漫谈iOS开发[C语言-039]-switch case 补充:

  6. 李洪强漫谈iOS开发[C语言-039]-剪刀石头布

     李洪强漫谈iOS开发[C语言-039]-剪刀石头布

  7. 李洪强漫谈iOS开发[C语言-038]-if else if语句

    李洪强漫谈iOS开发[C语言-038]-if else if语句

  8. 李洪强漫谈iOS开发[C语言-037]-if else 语句

    李洪强漫谈iOS开发[C语言-037]-if else 语句

  9. Android &Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  10. 李洪强漫谈iOS开发[C语言-044]-翻译数字

     李洪强漫谈iOS开发[C语言-044]-翻译数字

随机推荐

  1. poj 2446 Chessboard (二分匹配)

    Chessboard Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 12800   Accepted: 4000 Descr ...

  2. 《CSS3秘籍》(第三版)-读书笔记(4)

    第12章  CSS页面布局 网页布局的类型: 固定宽度.不管浏览器窗口的宽度多大,网页内容的宽度始终保持不变. 流式.流式设计采用百分比,它会根据浏览器的宽度(无论有多宽)自动进行调整.网页会随着访问 ...

  3. sbt的assembly插件使用(打包所有依赖)

    1.sbt是什么 对于sbt 我也是小白, 为了搞spark看了一下scala,学习scala时指定的构建工具就是sbt(因为sbt也是用scala开发的嘛),起初在我眼里就是一个maven(虽然ma ...

  4. 如何使用JS脚本从HTML中分离图片标签与文本,替换文本中指定的内容并加粗(原创)

    var html='ddfsdfsdfdsd dfsdfsdffds<img _src="http://localhost:8490/60E86EA7-FE7B-44BF-8270-4 ...

  5. 咏南WEB开发框架(FOR XE10.1 BERLIN)

    咏南WEB开发框架(FOR XE10.1 BERLIN) 1)支持最新的XE10.1 BERLIN开发WEB程序 2)如同开发VCL WIN32程序一样的速度 3)WEB框架通过咏南中间件和数据库打交 ...

  6. python数据处理相关的一些知识点(学习点)

    自己总结了一下就是存储,消息处理(异步,阻塞,队列,消息中间件) 参考岗位需求 数据爬虫工程师的岗位职责:1.分布式网络爬虫研发:不断完善现有抓取系统,通过对抓取.解析.调度.存储等模块的拆分与优化, ...

  7. HighChats报表使用C#mvc导出本地图片

    最近工作使用了HighCharts,要用到保存成图片功能,但是是内部使用,不允许连接外网,于是就学习了下highcharts生成本地图片. highcharts有一个exporting.js来负责导出 ...

  8. vim基础使用

    vim的常用模式有分为命令模式,插入模式,可视模式,正常模式.本教程中,只需要用到正常模式和插入模式.二者间的切换即可以帮助你完成本指南的学习. 进入方法: vim xxx.xml 正常模式 正常模式 ...

  9. <大学祭>

    我将20岁青涩的身影留在教室前的花坛边,远赴他乡,这些年过去了,他总是对我说别忘记我的梦: 我将那个沉静娇小的眼镜女孩印象留在第一排靠窗的座位,带着淡淡离愁而去,这些年过去了,她对我说,永恒的爱是心中 ...

  10. ASP.NET MVC 下拉框的传值的两种方式

    以前使用WebForm变成时,下拉框传值只需直接在后台绑定代码就可以了.现在我们来看看在MVC中DropDownList是如果和接受从Controller传过来的值的. 第一种:使用DropDownL ...