?:的特殊用法小记

本文介绍了三元操作符(?:)的概念及其在C语言、C#、Perl和Python等编程语言中的用法,包括GNU对C语言的扩展和其在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

本文为对维基百科上的文章片段翻译整理而得,详见参考文献。


?:是一个三元操作符(ternary operator),用来构造一个基本的条件表达式。被称作条件表达式、内嵌式选择符或者三元选择符(conditional operatorinline if (iif), or ternary if)。 用法如下:

condition ? value_if_true : value_if_false

如果条件(condition)为真,则整个表达式的返回值为value_if_true,否则为value_if_false。


在GNU对C语言的扩展中,如果第一个参数和第二个参数一样,则第二个参数可以不用书写出来。例如:

a = x ? : y;
相当于

a = x ? x : y;
唯一的区别在于当x是一个表达式时,它只会被运算一次。因此,如果表达式的运算会带来其他影响,则两者的差别就大了。


C#和Perl用空接合操作符(null coalescing operator)提供类似的功能:

a = x ?? y;
但与GNU对C语言 的扩展不同的是,??仅仅判断x是否为空(null)。


Python使用or操作符提供相同的功能:

a = x or y

参考文献:

?:操作符


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值