作业帮 > 综合 > 作业

一个C语言问题,给我解释一哈,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 17:49:38
一个C语言问题,给我解释一哈,
#define f(x) 1+x+x*x
#include
void main()
{
int a=2,b=3;
printf("%d\n",f(a+b));}
上面程序的结果是17,
程序中的宏定义是如何执行的,
f(a+b)与上面的f(x)形式不同,我就不明白是如何执行的了.
#define f(x) 1+x+x*x是宏定义,代入时是这样:
f(a+b)=1+a+b+a+b*a+b=1+2+3+2+3*2+3=17
注意,这里代入时,不是(a+b)而是a+b.因为是f(a+b),不是f((a+b)).