C语言,for语句中,表达式3,i++与++i的作用一样吗?

原题是这样的:
#include<stdio.h>
void main()
{
int i,x=0;
for(i=1;i<5;++i)
{
if(i%2==1)
x=x+i;
else
x--;
}
printf("%d ",x);
}
最后输出的结果是2,
与for(i=1;i<5;i++的结果一样。
所以在表达式三中,i++与++i 一样对吗?

不一样,但是for语句中只需要i自增1就可以了,所以结果一样。其实i++和++i很好区分,比如

main()
int a,b,i=1;
a=i++;
printf("%d,%d\n",a,i);
b=++i;
printf("%d,%d\n",b,i);

输出值为1,2

              3,3;

i++和++i都表示i自增,但是a=i++表示将i的值赋给a,而b=++i则表示先将i自增一下后赋给b.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-30
如果I++和++i单独写,二者的功能一样

只有把他们写到另外的表达式中才不一样
例如:
c=i++;
c=++i;
第2个回答  2013-11-30
++i 和 i++单独成一个语句的时候,其作用效果是一样的~
相似回答