已知宏定义 #define SQ(x) x*x,则执行语句 printf("%d",9/SQ(3))

求结果,并告知求解过程~~~... 求结果,并告知求解过程~~~ 展开
 我来答
yanglei5658
2015-06-22 · TA获得超过4756个赞
知道大有可为答主
回答量:835
采纳率:100%
帮助的人:520万
展开全部

答案是9。

使肆蚂用#define定义的代码,在编译前是直接替换程序中的代码,所以

printf("%d",9/SQ(3))

实质上是

printf("%d",9/3*3)

它备穗并不是先算SQ的值,再裂滚埋进行计算,而是直接把代码替换过去。

因此结果就是9。

追问
前面的那个9是没有意义吗?意思是无论9/SQ(3),换成其他公式,比如6*SQ(3)结果还是9吗?
追答
9有意义啊,只是SQ(x)会替换成x*x,这个是在计算之前替换的,
比如6*SQ(3)

就变成6*3*3了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式