#define M(x) x*x int a=3,b=2; M(a+b)/M(a+b)=?

2020-08-26 教育 97阅读
#define m(x) x*x*(x+1)
main() {int a=2,b=3;
printf("%d\n",m(a+b));
}
那么结果是26
m(a+b)的展开式是a+b*a+b*(a+b+1),结果是26
#define m(x) (x)*(x)*(x+1)
main() {int a=2,b=3;
printf("%d\n",m(a+b));
}
那么结果是150
m(a+b)展开式是(a+b)*(a+b)*(a+b+1)结果是5*5*6=150
你的程序中宏定义是错误的,应该是输入时不小心造成的...赞同0| 评论
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com