C语言的for循环

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:18:06
表达式3中用 i++和++i,都不影响结果啊~

这两个有什么区别么?
main()
{
int a[10],i,j;
for(i=0,j=10;i<10;i++,j++)
a[i]=j;
for(i=0;i<10;i++)
printf("%d",a[i]);
}

不在for后的(;;)内添加其它附加表达式的话,则没有区别。
区别可参考下例:
for(i=0;i<10;i++,j=i)
printf(%d,j);

有区别的
计算的顺序不同
如果是值传递的话,就硬要注意了。
a=i++;先运行a=i;然后计算i=i+1;
a=++i;先计算i=i+1;然后运行a=i;
最终结果都是i的值自增1,但是a的值却是不同的。
类似的应用也有这种区别的。
ps:刚开始我也搞不清楚的,后来吃了许多亏才记住!

嗯,还是有区别的。i++先运行一次i,再自增1,而++i是先自增1,然后再运行自增1后的i.

这个要看你的程序是什么样的了`` 比如:
for(i=0;i++/*++i*/<3;)有区别,i++比++i多一次循环,因为在这里i变量参与判断语句,而i++是先判断再加1,++i先加1再判断.
for(i=0;i<3;i++/*++i*/)无区别
分析for循环时可以以while循环形式分析更简单一些``

for(A;B;C)
{
...
}
等价于
A;
while(B)
{
...
c;
}

假如 i=8
i++就是使用i原来的值后再加1,你这次使用的值是8,
++i 就是在i的原值再加1 然后使用,你使用的值就是9了

i++在后先用后加
++i是先加后用的
比如i=5
a=i++ a=5,i=6
a=++i a=6,i=6