那是你根本不懂编译
首先你可以这样
int i=4;
int s=2;
for(;i<7;--i)
{ if(i==-3)
break;
s+=i;
}
printf("%d",s);
和
int i=4;
int s=2;
for(i-3;i<7;--i)
{ if(i==-3)
break;
s+=i;
}
printf("%d",s);
你就会发现i-3无意义 并不是一个赋值定义
int i=4;
int s=2;
for(i-3;i<7;--i)
{ if(i==-3)
break;
s+=i;
}
printf("%d",s);
和
int i=4;
int s=2;
for(i-3;i<7;i--)
{ if(i==-3)
break;
s+=i;
}
printf("%d",s);
接下来再这么做
你将发现--放在前面或者后面也不影响
你以为编译只能看过结果?