C语言问题 小问题

[复制链接]
查看11 | 回复1 | 2011-4-19 05:58:32 | 显示全部楼层 |阅读模式
#define f(x) x*x
main()
{
int i;
i=f(4 4)/f(2 2);
printf(\"i=%d\\n\",i);
}
求输出结果
回复

使用道具 举报

千问 | 2011-4-19 05:58:32 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">其实宏定义就是一种替换运算策略。楼上的算法是认为的在X*X两边加上了括号,实际是没有的。
正确的运算应该是将X用4 4 和2 2代替,得到如下:
i = 4 4*4 4/2 2*2 2
则,i = 4 16 2 4 2 = 28
#include stdio.h
#define f(x) x*x
main()
{
int i;
i=f(4 4)/f(2 2);
printf(\"i=%d\\n\",i);
}
将上代码复制到编译器中运行即可得到结果
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行