作业帮 > 综合 > 作业

下面的程序中s=f(a+1);t=f((a+1)); 问题是它们的区别,为什么输出不同.

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/20 03:24:02
下面的程序中s=f(a+1);t=f((a+1)); 问题是它们的区别,为什么输出不同.
#include
#define f(x) x*x*x
main()
{
int a=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n",s,t);
}
下面的程序中s=f(a+1);t=f((a+1)); 问题是它们的区别,为什么输出不同.
宏定义只是替换!你把它当字符串替换就行了!s=a+1*a+1*a+1
t=(a+1)*(a+1)*(a+1)