博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【学习笔记】【C语言】三目运算符
阅读量:5146 次
发布时间:2019-06-13

本文共 1169 字,大约阅读时间需要 3 分钟。

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 
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 }

 

转载于:https://www.cnblogs.com/dssf/p/4561864.html

你可能感兴趣的文章
0405第四章读后感
查看>>
ImageView读取本地路径图片
查看>>
简单 php 代码跟踪调试实现
查看>>
json总结
查看>>
个人发展生存之道
查看>>
TensorFlow分布式计算机制解读:以数据并行为重
查看>>
python 跨域处理方式
查看>>
oc-NSArray
查看>>
【2019-08-11】别人约我宵夜,我却约人早茶
查看>>
Vim 快捷键
查看>>
3年A班,从现在起大家都是人质-观后感
查看>>
Linux更新系统时间
查看>>
站立会议12
查看>>
bzoj4540
查看>>
C++ Primer 第四版课后练习解答 习题1.7
查看>>
Jquery插件Ztree使用所遇问题
查看>>
Linux--YUM 安装 nginx php mysql
查看>>
常见的兼容性问题
查看>>
【CSS3】 - 初识CSS3
查看>>
Python Socket Programming UDP/TCP
查看>>