#define f(x) x*x*x main() { int a=3,s,t; s=f(a+1);t=f((a+1)); printf("%d,%d",s,t);为啥输出是10,64

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/17 06:38:34
#definef(x)x*x*xmain(){inta=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d",s,t);为啥输出是10,64#definef(x)x*x*x

#define f(x) x*x*x main() { int a=3,s,t; s=f(a+1);t=f((a+1)); printf("%d,%d",s,t);为啥输出是10,64
#define f(x) x*x*x main() { int a=3,s,t; s=f(a+1);t=f((a+1)); printf("%d,%d",s,t);为啥输出是10,64

#define f(x) x*x*x main() { int a=3,s,t; s=f(a+1);t=f((a+1)); printf("%d,%d",s,t);为啥输出是10,64
少了括号
你这语句s=f(a+1)相当于s=a+1*a+1*a+1=10;
t=f((a+1))=(a+1)*(a+1)*(a+1)=64;
应该改成
#define f(x) (x)*(x)*(x)