中易网

C语言中 #define T(c) (c==c==c) mian() { printf("%d %d\n",T(5),T(1)); } 为什么输出0 1

答案:2  悬赏:10  
解决时间 2021-01-17 05:25
  • 提问者网友:像風在裏
  • 2021-01-16 18:19
C语言中 #define T(c) (c==c==c) mian() { printf("%d %d\n",T(5),T(1)); } 为什么输出0 1
最佳答案
  • 二级知识专家网友:雪起风沙痕
  • 2021-01-16 19:29
T(5) 替换成 (5==5==5)
先判断前者 5==5成立,返回1,然后1==5不成立,因此返回0
T(5) 替换成 (1==1==1)
先判断前者 1==1成立,返回1,然后1==1成立,因此返回1
全部回答
  • 1楼网友:山君与见山
  • 2021-01-16 19:39
T(5)相当于(5==5==5)也就是判断( (5==5)==5 ),化简(1==5),当然错误,所以为0
T(1)相当于(1==1==1)也就是( (1==1)==1),化简得(1==1),是争正确的,所以为1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息