#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/05/08 01:14:28
#define f(x) x*x*x main() { int a=3,s,t; s=f(a+1);t=f((a+1)); printf(

#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)