这个z为什么等于7了啊

f*f不应该等于16吗

img

if(x--)后x=1;

注意宏定义的用法,这里是z=F * F;
也即是z=x+y * x+y = 1 +3*1+3 = 7;

x变成了1
z = F*F = 1 + 3 * 1 + 3 = 1 + 3 + 3 = 7

x--后为1
z=F×F=1+3*1+3=7
注意是乘法先算

x--是先输出再执行减一操作,所以在判断是x还是2,所以会进入判断中,此时x在执行减一操作变成了1,z=FF根据宏定义先替换后计算的规则变成了z=x+yx+y=1+3*1+3=7