预测以下C ++程序的输出。
#include <iostream>
using namespace std;
int main()
{
int test = 0;
cout << "First character "<< '1'<< endl;
cout << "Second character "<< (test ? 3 : '1') << endl;
return 0;
}
有人希望两个打印语句的输出都一样。但是,输出将是
First character 1
Second character 49
为什么第二个语句打印49?阅读三元表达式。
三元运算符(C / C ++)
三元运算符的格式如下:
exp 1?exp 2:exp 3
表达式exp 1将始终被求值。exp 2和exp 3的执行取决于exp 1的结果。如果exp 1的结果非零,则将评估exp 2,否则将评估exp 3。
副作用:
exp 1的任何副作用都将在执行exp 2或exp 3之前立即进行