想问一下这道c语言题23是怎么算出来的?

#define SQR(X) X*X
int main(){
int a=10,k=2,m=1;
a+=SQR(3+k)/SQR(2+m);
printf("%d",a);
}

宏不是函数,它就是简单的字符替换而已
SQR(3+k)/SQR(2+m); 被替换为 3+2*3+2/2+1*2+1==13 ,于是a+=13得a==23

要使SQR(3+k)/SQR(2+m)的结果是25/9, 可以给宏定义多加些括号:
#define SQR(X) ((X)*(X))
温馨提示:答案为网友推荐,仅供参考
相似回答