【发布时间】:2021-07-24 10:56:13
【问题描述】:
我看到有人写了这段代码#define MAX(x, y) ((x) > (y) ? (x) : (y))
什么意思?
【问题讨论】:
-
有什么不明白的?如果 x 大于 y,则最大值为 x,否则为 y。是三元运算符还是你看不懂的#define? (为什么所有这些括号?)
我看到有人写了这段代码#define MAX(x, y) ((x) > (y) ? (x) : (y))
什么意思?
【问题讨论】:
这里它检查x是否大于y如果是则x否则y。
让我们看一个例子来理解它
int max = x > y ? x : y
这只是意味着
if (x > y)
max = x
else
max = y
【讨论】:
Ternary Operator 是编写 if-else 的语法糖。您可以将其视为( expression )? (result to be stored if true): (result to be stored if false)。所以回答你的问题#define MAX(x, y) ((x) > (y) ? (x) : (y)) 如果 x 大于 y 则返回 x,否则返回 y。
编辑: 更改了参考链接,并改写了句子。
【讨论】: