C语言#define P 1+2 void main() { int a=2,b=1; printf("%d\n",3*P*(a+b)); } 为什么答案是6

标题说错了。问题是为什么答案是9?求解答... 标题说错了。问题是为什么答案是9?求解答 展开
 我来答
买卖江湖
2016-06-11 · TA获得超过132个赞
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:43.6万
展开全部
#define 是宏定义,是替换,不做计算,也不做表达式求解。
所以替换后就变成3*1+2*(2+1)=3+2*3=9
所以在使用#define时要注意括号
追问

能否再帮我说下这道题

答案为什么是A?

谢谢了

追答
因为a b都是整型值,所以a/b所得的数会默认去掉小数点后的数变成整型值
而整型值与浮点数相加,结果是浮点数。
所以a/b+c=3+3.5=6.5
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式