++、--运算
#include "stdio.h"
#include "math.h"
int main()
{
int x=4,y=25,z=2;
z=(--y/++x)*z--;
printf("%d%d%d",x,y,z);
return 0;
}
输出是:5247
#include "stdio.h"
#include "math.h"
int main()
{
int x=4,y=25,z=2,t;
t=z=(--y/++x)*z--;
printf("%d%d%d%d",t,x,y,z);
return 0;
}
输出是:85247
为什么多赋值一次就+1了呢?
[解决办法]
相等于,z=8;,t=z--;所以运算后z=7,t=8;
[解决办法]
这个你可以这么了解,
在基于表达式的运算中,可分为“计算”和“自增减”两部分,++i是先自增后计算
i++是表达式“计算”结束后才“自增减”。
t=z=(--y/++x)*z--;
这个表达式的“计算部分”结束后,t=z=8,然后开始z--进行“自增减”,所以t=8,z=7.