三元操作符“?:”,有时也称为条件操作符。
对条件表达式b?x:y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y,运算结果为y的值。一个条件表达式从不会又计算x,也计算y。条件操作符是向右关联的,也就是说,从左向右分组计算。例如:表达式a?b:c?d:e将按a?b:(C?d:e)形式执行。
?:的第二和第三个操作数控制了条件表达式的类型。设x和y分别是第二个和第三个操作数的类型,那么:
●如果x和y为同一类型,则该类型即是条件表达式的类型。
●否则,如果从x到y存在一个隐式转换,但不存在y到x的转换,那么y是条件表达式的类型。
●否则,如果从y到x存在一个隐式转换,但不存在x到y的转换,那么x是条件表达式的类型。
●否则,没有定义任何表达式类型,发生编译时错误。
时间: 2024-10-24 19:04:42