#define Tap(X) 2*X+1 main() {int a=6,k=2,m=1; a+=Tap(k+m); printf("%d\n",a); } 为什么我算的是13啊

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/24 22:15:56
#defineTap(X)2*X+1main(){inta=6,k=2,m=1;a+=Tap(k+m);printf("%d\n",a);}为什么我算的是13啊#defineTap(X)2*X+1ma

#define Tap(X) 2*X+1 main() {int a=6,k=2,m=1; a+=Tap(k+m); printf("%d\n",a); } 为什么我算的是13啊
#define Tap(X) 2*X+1 main() {int a=6,k=2,m=1; a+=Tap(k+m); printf("%d\n",a); }
为什么我算的是13啊

#define Tap(X) 2*X+1 main() {int a=6,k=2,m=1; a+=Tap(k+m); printf("%d\n",a); } 为什么我算的是13啊
a=12
因为a+=Tap(k+m)展开宏后得到
a+=2*k+m+1
如果错了你就应该将宏写为
#define Tap(X) 2*(X)+1

(2+1)*2+1+6=13
没错,是13

13
a=2*(2+1)+1+6

12
a+=Tap(k+m);
这句相当于a=a+(Tap(k)+m)
a=6+(2*2+1)+1)
a= 12