#define MIN(x,y) (x)<(y)?(x):(y) main() {int i=10,j=15, k; k=10*MIN(i,j); printf("%d\n&q
答案:2 悬赏:10 手机版
解决时间 2021-11-24 10:30
- 提问者网友:呐年旧曙光
- 2021-11-24 05:01
#define MIN(x,y) (x)<(y)?(x):(y) main() {int i=10,j=15, k; k=10*MIN(i,j); printf("%d\n",k);}求结果
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-11-24 06:33
答案是15 这就是宏定义的恶心之处
k=10*MIN(i,j); 宏展开之后是这样的
10*(i)<(y)?(x):(y)
10*10 和 15 当然是15小了追问过程能不能在详细一点追答k=10*MIN(i,j); 宏展开之后是这样的 10*(i)<(j)?(i):(j) 把i和j的值带进去 然后三元运算变成了这样 10*10<15?10:15 *的优先级高于< <的优先级高于三元运算 so 100<15为假 取后面的值也就是j的值15
k=10*MIN(i,j); 宏展开之后是这样的
10*(i)<(y)?(x):(y)
10*10 和 15 当然是15小了追问过程能不能在详细一点追答k=10*MIN(i,j); 宏展开之后是这样的 10*(i)<(j)?(i):(j) 把i和j的值带进去 然后三元运算变成了这样 10*10<15?10:15 *的优先级高于< <的优先级高于三元运算 so 100<15为假 取后面的值也就是j的值15
全部回答
- 1楼网友:一袍清酒付
- 2021-11-24 06:47
结果为10;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯