#define f(x) (x*x)main(){ int i , j; i=f(8)/f(4); j=f(4+4)/f(2+2); printf("%d %d",i, j);}答案是4 3,但是我不明白那个j值得运算过程,.望指教~~
j=(4+4*4+4)/(2+2*2+2) =24/8 =3
#define f(x) (x*x)main(){ int i , j; i=f(8)/f(4); j=f((4+4))/f((2+2));printf("%d %d",i, j);}答案是4 3,但是我不明白那个j值得运算过程,.望指教~~
define就是直接替换,如果你要实现的是(4+4)*(4+4)就按红色那里再加个括号
你应该写成 #define f(x) ((x)*(x)) define只是简单的替换,所以在执行f(4+4)/f(2+2)时 就是x*x=4+4*4+4而不是(4+4)*(4+4)