求助!!!C语言程序!
#include < stdio.h> #define MA(x) x*(x-1) void main() { int a=2,b=3; printf("%d \n",MA(1+a+b)); } 答案是多少?为什么?
#include < stdio.h> #define MA(x) x*(x-1) void main() { int a=2,b=3; printf("%d \n",MA(1+a+b)); } 答案是多少?为什么?
答案:宏定义只是替换
MA(1+a+b) 替换后是 1+a+b*(1+a+b-1) = 1+2+3*(1+2+3-1) = 18
其他:30 1+a+b*(1+a+b-1)=1+1+2*3=8 18 ,因为这是替代,下面的MA(1+a+b)相当于 1+a+b*(1+a+b-1)
吧1+a+b直接替换为x!