C语言的三目运算符

标签: C语言 三目运算符
38人阅读 评论(0) 收藏 举报
分类:

https://blog.csdn.net/yuanzhuohang/article/details/5176303


如果在条件语句中,只执行单个的赋值语句时, 常可使用条件表达式来实现。不但使程序简洁,也提高了运行效率。

条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:
表达式1? 表达式2: 表达式3 
其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中。
例如条件语句: 
if(a>b) max=a;
else max=b;
可用条件表达式写为 max=(a>b)?a:b; 执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。
使用条件表达式时,还应注意以下几点:
1. 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此 max=(a>b)?a:b可以去掉括号而写为 max=a>b?a:b
2. 条件运算符?和:是一对运算符,不能分开单独使用。
3. 条件运算符的结合方向是自右至左。
例如:
a>b?a:c>d?c:d应理解为
a>b?a:(c>d?c:d) 这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条
件表达式。
void main(){
int a,b,max;
printf("/n input two numbers: ");
scanf("%d%d",&a,&b);
printf("max=%d",a>b?a:b);
}

用条件表达式对上例重新编程,输出两个数中的大数。

这里写图片描述

查看评论

讲通一个小知识点---C语言三目运算符

前言本文的小知识点事C语言的三目运算符,这是一个很好用的运算符,你可以看到在kinetis的库函数里有大量的应用,本篇我会用一个我们熟悉的例子进行讲解 知识点? : 也称为条件运算符号,是C语言...
  • wzw71734
  • wzw71734
  • 2016-11-23 12:23:15
  • 1170

关于c语言中三目运算符使用注意

最近在查看camera驱动时候,发现一段这样写的对于我这个小白初见有点蒙。最后想了想无非就是c语言中的三目运算符的嵌套。上图等价于iReg = iReg 0xf8?0xf8:iReg);  理解为...
  • superHubin
  • superHubin
  • 2017-06-27 14:30:43
  • 944

C语言的三目运算符

如果在条件语句中,只执行单个的赋值语句时, 常可使用条件表达式来实现。不但使程序简洁,也提高了运行效率。条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。由条件运算符组成条件表达式的一般形...
  • yuanzhuohang
  • yuanzhuohang
  • 2010-01-11 17:30:00
  • 55867

C语言中唯一的一个三目运算符(条件运算符)

“(a>b)?a:b”是一个条件表达式,如果(a>b)条件为真,则条件表达式去值a,否则取值b。 一般形式:表达式1?表达式2:表达式3,它是C语言中唯一的一个三目运算符。 执行顺序:先求解表达式...
  • yal179
  • yal179
  • 2013-10-30 15:17:18
  • 8896

三目运算符在C语音和C++语言中的区别

区别1、三目运算符的返回类型不同。C语言中,三目运算符返回的是变量值,不能作为左值使用。 C++中,三目运算符直接返回变量本身,因此可以作为左值使用。例如:int a = 2; int b = 3;...
  • win_turn
  • win_turn
  • 2016-02-23 22:24:24
  • 662

C语言条件表达式(三目运算符)结合性问题

在C语言标准中规定:条件表达式(三目运算符)的结合性是右结合,即自右向左结合 比如下面这条语句 int i = -2; int n = ++i == 0 ? 99 : i == -1 ? 11 : ...
  • gd920129
  • gd920129
  • 2013-12-06 21:48:33
  • 3234

c语言学习--三目运算符

三目运算符,又称条件运算符,指的是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。 对于条件表达式b...
  • qq_38880380
  • qq_38880380
  • 2017-12-27 19:15:41
  • 169

C语言中的三目运算符 ?: 的新用法

说明: 该运算符不仅能用在变量之间,竟然还可以用在函数之间,相当于可传参数的函数调用  1 void show_1(int val)  2 {  3     cout  "function sh...
  • ace_fei
  • ace_fei
  • 2014-04-10 16:01:26
  • 1441

三目运算符的理解

a?b:c 性质: 1、相当于条件判断语句 首先判断a是真是假,真就执行b,假就执行c,不会同时又判断a的真假的同时,又运算a,b的结果,最后再根据a的真假对a,b取舍,不会这样的。 2、...
  • dreamofprogramming
  • dreamofprogramming
  • 2017-11-04 19:57:04
  • 283

C++中的三目运算符与左值和右值

三目运算符在C语言中是右值,右值不可以被赋值。但在C++中,三目运算符是左值,左值可以赋值。 在C++中三目运算符返回的是变量本身。 #include #include int main() ...
  • vinnyjia
  • vinnyjia
  • 2017-04-17 16:51:04
  • 388
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 1813
    排名: 2万+
    文章存档
    最新评论