A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#define pingfang(a) (a*a)

#include <stdio.h>

   int main()

{
int c = pingfang(5+5);

   printf("c is %d\n", c);

return 0;

}

5 个回复

倒序浏览
把5+5放到pingfang里面去之后就变成了(5+5*5+5),乘法先算,变成了35,所以输出出来之后就是 c is 35.
回复 使用道具 举报 1 0
guyuexing 来自手机 中级黑马 2016-1-19 17:43:29
藤椅
嗯,有道理
回复 使用道具 举报
宏定义作用只是在编译之前把前面的值替换为后面的值,并不会参与运算,可以把宏定义的每个变量都用括号包起来,
即#define pingfang (a) ((a)*(a))
回复 使用道具 举报
a416182173 发表于 2016-1-19 17:00
把5+5放到pingfang里面去之后就变成了(5+5*5+5),乘法先算,变成了35,所以输出出来之后就是 c is 35. ...

了解了。多谢!!!
回复 使用道具 举报
a416182173 发表于 2016-1-19 17:00
把5+5放到pingfang里面去之后就变成了(5+5*5+5),乘法先算,变成了35,所以输出出来之后就是 c is 35. ...

了解了。多谢!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马