我有一道C语言题目~(大家试试看~ 很简单的~~)

来源:百度知道 编辑:UC知道 时间:2024/06/02 06:02:34
下面程序的运行结果是_______
#define N 10
#define s(x) x*x
#defien f(x) (x*x)
main()
{
int i1,i2;
i1=1000/s(N);
i2=1000/f(N);
printf("%d %d\n",i1,i2);
}

答案是1000 10
因为宏是原样调用,不打括号的话1000/s(N)=1000/N*N=(1000/N)*N
打了括号就是1000/f(N)=1000/(N*N)
另外一例:
……
#define N 5+1
#define K (4+3)
main()
{
int x=2;
printf("%d\t",x*N);//x*N=2*5+1=11不是2*(5+1)
printf("%d"x*K);//x*K=2*(4+3)=14
}
输出的就是11 14

我的答案和一楼的老兄一样。

1000 10
相当于
i1=1000/N*N
i2=1000/(N*N)

1000、10