初学者关于c语言的简单问题

2024-12-26 18:07:15
推荐回答(6个)
回答1:

楼上说的差不多,就错了一点点

宏不是函数,宏展开就是相当于套公式
展开之后就是

10 * MIN(i,j)
= 10 * (10)<(15)?(10):(15);
= 100 <15?10:15
因为15小于100,所以结果就是15了

回答2:

运算符优先级不一样,乘号比 ?:优先级高,再加上宏定义就是简单的替换,替换后就发生了改变,本来先比较x y的最小者,但现在成了先运算10乘以x了(结果为100),然后才是这个运算?:
这时就变成了100和15比较最小者了,当然15最小了。要想正确的话,把(x)<(y)改为(x

回答3:

宏不是函数,宏展开就是相当于套公式

k=10*MIN(i,j);
相当于 k=10*10<15?10:15
100>15,所以K=15

回答4:

(x)<(y)
改成(x

回答5:

我认为答案不是15的

回答6:

1楼正解