为了账号安全,请及时绑定邮箱和手机立即绑定

输出结果为什么是10

输出结果为什么是10

C
yuantongxin 2015-11-25 15:25:19
#include <stdio.h> #define ADD(x) x+x int main() { int m=1,n=2,k=3,sum ; sum = ADD(m+n)*k ; printf("%d",sum);      return 0; }
查看完整描述

1 回答

已采纳
?
loser_by

TA贡献1条经验 获得超0个赞

C里面的宏定义在代码中调用时只是一个简单的文本替换,不会识别类型。所以以上程序的运行其实是  1+2+1+2*3=10,建议用typedef替换define

查看完整回答
反对 回复 2015-11-25
  • yuantongxin
    yuantongxin
    非常感谢!
  • loser_by
    loser_by
    #(滑稽)其实我也是刚了解这个define宏定义的,可以当方法一样写加上IF来确定
  • 1 回答
  • 1 关注
  • 1149 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号