三元运算符,或者叫条件运算符(conditional operator),返回的是左值。也就是说,它不仅可以赋值给其他变量,也可以被其他表达式赋值。看下面的例子
#include <iostream>
int main(void)
{
int k = 0, l = 1;
(4 > 3 ? k : l) = 5;//注意,要加括号,否则l=5将率先结合在一起
std::cout << "k = " << k << ",l = " << l << std::endl;
std::cin.get();
return 0;
}
执行结果:
因为4>3是真,所以条件运算符返回了k的左值,进而被赋值为5