c++中的运算符“ ?: ”是什么关系?

问号和冒号是什么关系。
2024-11-28 16:04:29
推荐回答(5个)
回答(1):

三目运算符是?:结构的运算
所谓三目就是需要三个变量对能进行运算的操作
举个例子:
2>1?A:B
答案就是A
先算“?”前面的,若前面成立就执行:前面的(A),反之就执行后面的(B)

再举个简单的例子:
a=2>1?3:4
可分成几个部分,用括号分开:
(a=)(2>1)?(3):(4)
最左边是赋值操作
第二个部分是一个判断
第三和第四部分是两个常数
首先判断第三部分是否成立,成立即选择第三部分,否则选择第四部分
像上面那个2>1成立,所以就执行了a=3

这种运算还可以嵌套
比如判断year是不是闰年,是则返回1,不是返回0
year=(year%100==0)?(year%400==0?1:0):(year%4==0?1:0)

回答(2):

a?b:c
如果a非0(或者a为真),则整个表达式表示b;否则表示c

比如int t = (5 > 3):11:12
那么t等于11
如果int t = (5 < 3) : 11:12
那么t等于12

回答(3):

a>b?a:b
问号表达式
如果a>b,则取a,反则取b

回答(4):

(条件) ? (返回值1) : (返回值2)

条件成立(真) 返回 1
条件不成立(假) 返回2

回答(5):

a?b:c
如果满足a 则为b 否则为c
举例:sum+=3>4?10:134 sum+=134;