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. 一款好用的杀毒软件-pchunter64

    360真是猛,用system权限运行了一坨后台进程.今天清理系统盘想删掉360发现根本没权限.进程又杀不掉. 最后使用 pchuter64 强行干掉了360 避免了 重装系统的尴尬.360作为世界第一 ...

  2. Java核心知识点学习----使用Condition控制线程通信

    一.需求 实现线程间的通信,主线程循环3次后,子线程2循环2次,子线程3循环3次,然后主线程接着循环3次,如此循环3次. 即:A->B->C---A->B->C---A-> ...

  3. 解决 webx.ml 中The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 问题

    在Eclipse 的项目  上,点击鼠标右键 选中 ,并 Finish 即可.

  4. Java 技术体系图

    Java 程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 核心编程 IO.多线程.实体类. 集合类.正则表达式. XML 和属性文件 图形编 ...

  5. each函数

  6. GNU M4 - GNU Project - 免费软件基金会(FSF)

    -------------------------------------------------------------------------------------- GNU M4介绍: GNU ...

  7. js闭包和回调

    1.闭包 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.闭包有三个特性: 1.函数嵌套函数; 2.函数内部可以引用外部的参数和变量; 3.参数 ...

  8. #import、#include、@class、@protocol、@interface

    #include 它用于对系统自带的头文件的引用,编译器会在系统文件目录下去查找该文件.(注意重复引用) #import 是Objective-C针对#include的改进版本,确保引用的文件只会被引 ...

  9. jsp_属性范围_request

    request属性范围表示在服务器跳转后,所有设置的内容依然会被保留下来.(服务器端跳转:页面跳转,地址栏不发生变化) 下面写个小例子测试下: (1)request_demo.jsp <%@ p ...

  10. WordPaster-Firefox浏览器控件安装方法

    将WordPaster.xpi拖到Firefox扩展面板中安装       新版Firefox可能无法通过验证,如果Firefox提示无法安装,则需要进入about:config中将xpinstall ...