C语言新手上道求解,求详解

#define PT 5.5
#define S(x) PT*x*x
main()
{
int a=1,b=2;
printf("%4.1f\n",S(a+b));
}

如何运行
运行结果是多少

#define的定义被带入printf("%4.1f\n",S(a+b));
printf("%4.1f\n",5.5*a+b*a+b);
运行结果是9.5追问

但是这答案不应该是5.5*(a+b)*(a+b)吗
答案是9.5.。但是我不知道为什么,。。。

追答

#define S(x) PT*x*x--->#define S(x) PT*(x)*(x)
定义改一下就是你想要的了

追问

那么为什么会变成。。。。。5.5*a+b*a+b。。。这个啊
这怎么得出来哒

追答

替换出来的
define的作用是替换,不做运算的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-06-28
define 只做替代作用,不参与运算。
第2个回答  2018-06-28
结果是 X9.5——X是一个空格。
相似回答