#define SQR(X) X*X
main( )
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a); }
求解这是啥意思
#define 是宏定义,SQR(X) 这个串在代码中都用X*X替代
因此
a/=SQR(k+m)/SQR(k+m)实际就是
a/=k+m * k+m/k+m * k+m
就是
a/=2+1 * 2+1/2+1 * 2+1 = 2+2+0+2+1=7
a=10
所以
a/=7的结果是a=1
宏定义相当于字符串替换
a/=k+m * k+m / k+m * k+m;(直接替换)
a/=2+1 * 2+1/2+1*2+1
a/=2+2+0+2+1
a/=7
a=a / 7
a=1
a是int类型,所以取整数