Sue. 发表于 2021-9-22 08:07:14

小白求助

1.if(a > (10<1))



2.#include <stdio.h>
#define FUN(a, b) ((a*b>0)?"Yes":"No")                              
int main() {
int a = 10, b = 4;
printf("%s\n", FUN(a-5, b));                               输出为NO
return 0;
}



这两个是怎么理解的= =,没看懂

逃兵 发表于 2021-9-22 09:46:55

1.布尔类型TRUE == 1False == 0
这里if(a > (10<1))
相当于if(a > 0)

2.宏定义是纯文本替换
带入公式
((10-5*5>0)?"Yes":"No")   
运算优先级不对,所以会输出No
如果a = 26就是yes了

Sue. 发表于 2021-9-22 13:28:25

逃兵 发表于 2021-9-22 09:46
1.布尔类型TRUE == 1False == 0
这里if(a > (10 0)



运算优先级不对是啥意思{:10_254:}
为啥改26就YES了

逃兵 发表于 2021-9-22 13:34:20

Sue. 发表于 2021-9-22 13:28
运算优先级不对是啥意思
为啥改26就YES了

代入公式是

((10-5*5>0)?"Yes":"No")   

运算结果会是10-25=-15

Sue. 发表于 2021-9-22 16:12:25

逃兵 发表于 2021-9-22 13:34
代入公式是

((10-5*5>0)?"Yes":"No")   


哦好的谢谢

心驰神往 发表于 2021-9-23 07:56:39

Sue. 发表于 2021-9-22 16:12
哦好的谢谢

问题给你解决了,别忘了给人家最佳答案
页: [1]
查看完整版本: 小白求助