for(i=0;i<n;i++)是什么意思?
是一个循环体语句,会执行2次(分别是i=0和i=1时的情况)(注:以下是代码,不能用标点。)。
#include<stdio.h>
int main()
{
int n,m,i;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
{
if(i>m) break;
}
for(;i<n;i++)\从上次for循环停止的地方继续
{printf("%d",i);
}
return 0;
}
这个就是变量i的初始值是0,当变量i的值小于变量n的值的时候,进入循环,然后变量i自增,当达到n-1 (n的前一个值)的时候跳出循环。
首先给变量i赋初值0,然后判断,若满足条件i<2(是),就执行循环体的语句,完成后再i++,即i =i +1;i变成1,然后再次判断是否满足条件i<2(仍是),就再执行循环体的语句,完成后再i++,即i成为2,再次判断是否满足条件i<2,发现不再满足,于是就退出循环。
C语言也会存在矛盾:
c规定:&& 的优先权要高于 ||。
c优化:在“exp1 && exp2” 中如果exp1为false,则不再计算exp2的值。
c优化:在“exp1 || exp2” 中如果exp1为true,则不再计算exp2的值。
按照规定, 要先计算 && ,也就是需要计算出 ++b和c++。
按照优化, 只要计算出 a>0 就可以了,不需要计算出 ++b和c++。
x=1,y=1,z=1;++x || ++y && ++z 只要计算++x即可以如此说来 (exp1 || exp2 && exp3)和(exp2 && exp3 ||exp1)会有不同的结果,这也不符合生活习惯呀。这难道是“++副作用”。