参见英文答案 >
What does ‘?’ do in C++?7个
考虑这个功能
考虑这个功能
template<class T> inline bool cx(T &a,T b) {return a < b ? a = b,1 : 0;}
任何人都能解释这究竟是做什么的吗?它似乎与典型情况不同? true:false格式.
解决方法
我们可以这样说得更清楚:
return a < b ? (a = b,1) : 0;
带括号的位表示“将b分配给a,然后使用1作为我们的值”.
C和C中的Comma-separated lists of values通常表示“评估所有这些,但使用最后一个作为表达式的值”.