问题
填空题
有以下程序
#define f(x)x*x
main()
int i;
i=f(6+6)/f(2+2);
printf("%d\n", i);
执行后的输出结果是______。
答案
参考答案:51
解析: 由定义可以看出,宏的概念是替换。那么也就是f(6+6)代表着x是6+6,x*x替换一下后就变成了6+6*6+6,同理f(2+2);替换为了2+2 *2+2,最后f(6+6)/f(2+2);就是6+6 *6+6/2+2*2+2,并且由于其中的除号“/”优先级比“+”号高,所以得出结果是51。