条件运算符C语言 条件运算符:?: 怎么运算

条件运算符  时间:2021-09-09  阅读:()

条件运算符的嵌套

条件运算符的语法为: (条件表达式)?(条件为真时的表达式):(条件为假时的表达式) 例如: x=a<b?a:b; 条件运算符构成一个表达式。

它是C++中唯一一个3元运算符,它们之间用“?”和“:”隔开。

上例中,把a和b中较小的值赋给x。

该例是if...else语句的一个替代: if(a<b) x=a; else x=b; 条件运算符构成表达式,它是有值的。

而if..else语句不能有值,所以if..else语句不能替代条件运算符。

例如,下面的代码不能由if..else替代: cout <<(a<b?a:b) <<endl; 输出语句要打印一个值,该值是a与b的较小值。

由于<<的优先级高于条件运算符,所以输出语句中要将条件运算符构成的表达式用括号括起来。

条件运算符表达式的值与测试值没有直接的关系。

例如: cout <<(number==l?"file":"files") <<endl; 该输出语句中,条件运算符表达式的条件若成立,取值为“file”,否则,取值为“files”。

其中,条件为两个整型数的比较, 而表达式的值为字符串。

条件运算符可以嵌套。

例如: x>y?"greater than":x==y?"equal to":"less than" 它等价于: (x>y)?"greater than":((x==y)?"equal to":"less than") 当x>y时,值为"greater than",x==y时,值为"equal to",否则,值为"less than"。

条件运算符的嵌套可读性不够好。

在一个条件运算符的表达式中,如果后面两个表达式的值类型相同,均为左值,则该条 件运算符表达式的值为左值表达式。

例如: int x=5; long a,b; (x?a:b)=1; //ok:因为a和b都是左值 (x?x:a)=2;//error:x和a不同类型。

编译器将其解释为(1ong)x和a (x==271:a)=3; //error:1非左值 "(x?a:b)=1"表示当x为0时,b=1,否则a=1。

这里的括号是必须的,否则将被看作x?a:(b=1)。

"(x?x:a)=2”中,尽管x是左值,a也是左值,但x与a不同类型,条件运算符要对其进行操作数的隐式转换,使之成为相同的类型。

任何被转换的变量都不是左值。

->在C中,条件运算符是不能作左值的,所以"(x?a:b)=1;"将通不过编译。

C语言 条件运算符:?: 怎么运算

int a=x>y?6:7;

等同于

int a;

if(x>y)

a=6;

else a=7;

RackNerd($199/月),5IP,1x256G SSD+2x3THDD

我们先普及一下常识吧,每年9月的第一个星期一是美国劳工节。于是,有一些服务商会基于这些节日推出吸引用户的促销活动,比如RackNerd有推出四款洛杉矶和犹他州独立服务器,1G带宽、5个独立IP地址,可以配置Windows和Linux系统,如果有需要独立服务器的可以看看。第一、劳工节促销套餐这里有提供2个套餐。两个方案是选择犹他州的,有2个方案是可以选择洛杉矶机房的。CPU内存SSD硬盘配置流量价格...

Linode十八周年及未来展望

这两天Linode发布了十八周年的博文和邮件,回顾了过去取得的成绩和对未来的展望。作为一家运营18年的VPS主机商,Linode无疑是有一些可取之处的,商家提供基于KVM架构的VPS主机,支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,所有机器提供高出入网带宽,最低仅$5/月($0.0075/小时)。This month marks Linod...

Hostodo:$19.99/年KVM-1GB/12GB/4TB/拉斯维加斯

Hostodo发布了几款采用NVMe磁盘的促销套餐,从512MB内存起,最低年付14.99美元,基于KVM架构,开设在拉斯维加斯机房。这是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,产品性能一般,数据中心目前在拉斯维加斯和迈阿密,支持使用PayPal或者支付宝等付款方式。下面列出几款NVMe硬盘套餐配置信息。CPU:1core内存:512MB...

条件运算符为你推荐
range英雄联盟out of range怎么调过来rtfrtf是什么格式模糊数学模糊数学是什么?能举个例子吗?谢谢eofexceptionjava中352627java.io.EOFException是什么意思a8处理器AMD A8处理器与I5比怎么样nvidia官方网站怎么下载英伟达显卡驱动官方google地图api最近链接google map页面 总是报api未定义,但是直接运行地图那页面就可以显示地图,招行信用卡还款招商银行信用卡有哪几个还款方式呢?活跃网络十大网络家族排行榜详情0x800ccc0f任务“POP3.163.COM-正在接收”报告了错误(0x800CCC0F)
北京主机租用 免费域名解析 什么是二级域名 google镜像 hostmaster bandwagonhost 优惠码 老左博客 美国php主机 css样式大全 一点优惠网 圣诞节促销 股票老左 速度云 泉州移动 支持外链的相册 江苏双线服务器 360云服务 带宽租赁 万网主机 更多