#define MAX(a,b) ((dx > dy) ? dx : dy)
有人会介意打破((dx> dy)?dx:dy)部分? 这来自控制台课程1-60。
答案 0 :(得分:8)
大致相当于:
int MAX (int dx, int dy)
{
if (dx > dy)
return dx;
else
return dy;
}
这也不正确。它应该是:
#define MAX(a,b) ((a)>(b))?(a):(b)
答案 1 :(得分:2)
您正在查看Ternary operator.
答案 2 :(得分:1)
正如所写,这条线对我来说没有意义。但
#define MAX(a, b) ((a > b) ? a : b)
以伪代码粗略地翻译为
#define MAX(a,b) if (a > b) then a else b
答案 3 :(得分:1)
test ? expr1 : expr2
是三元运算符。如果expr1
为真,则此表达式评估为test
,否则评估为expr2
。
答案 4 :(得分:0)
这意味着如果dx大于dy则选择dx,否则选择dy。
答案 5 :(得分:0)
int MAX (int dx, int dy)
{
if (dx > dy)
return dx;
else
return dy;
}