C++ 中的条件三元运算符 (?:)
条件运算符(?:)是一个三元运算符(它需要三个操作数)。条件运算符的工作原理如下-
第一个操作数被隐式转换为bool。在继续之前对其进行评估并完成所有副作用。
如果第一个操作数的计算结果为真(1),则计算第二个操作数。
如果第一个操作数的计算结果为假(0),则计算第三个操作数。
如果两个操作数的类型相同,则结果为该类型。
如果两个操作数都是算术或枚举类型,则执行通常的算术转换(在标准转换中涵盖)以将它们转换为公共类型。
如果两个操作数都是指针类型,或者一个是指针类型而另一个是计算结果为0的常量表达式,则执行指针转换以将它们转换为公共类型。
如果两个操作数都是引用类型,则执行引用转换以将它们转换为公共类型。
如果两个操作数都是void类型,则公共类型为void类型。
如果两个操作数属于相同的用户定义类型,则公共类型为该类型。
如果操作数具有不同的类型并且至少一个操作数具有用户定义的类型,则使用语言规则来确定公共类型。(请参阅下面的警告。)
#include输出结果using namespace std; int main() { int i = 1, j = 2; cout << ( i > j ? i : j ) << " 更伟大。" << endl; }
这将给出输出-
2 更伟大。