请问C语言里for循环使用a++和++a的区别?

来源:百度知道 编辑:UC知道 时间:2024/05/29 05:02:20
比如
for(a=0;a<5;a++)
sum=sum+a;
这个就相当于
int a=0;
while(a<5)
{sum=sum+a;
a++(这句是否完全等同于a=a+1??)
}
那如果是
for(a=0;a<5;++a)
sum=sum+a;
等同于写成while循环的什么呢?

a++和++a的区别在于:如果是表达式的一部分的话,那么+1的顺序会影响到结果

int a=1;
int b=1+a++;
则b=2;a=2
而int b=++a+1;
则b=3;a=2;
如果表达式就是一个简单的a++或++a;那是一样的
写成while循环和第一个是一样的,因为++不影响,它不在表达式里
while(a<5)
{sum=sum+a;
++a;//或a++
}

如果开始的时候a是2。
i=a++,那么i是2。
i=++a,那么i是3。
区别是在什么时候加1。如果不再给其它变量赋值的话结果等价。

给的这个例子,++a和a++结果是一样的。

int a=0;
while(a<5)
{sum=sum+a;
a++(这句完全等同于a=a+1!!)
}

for(a=0;a<5;++a)
sum=sum+a; //这时a=1了, ++a就是先给a加1,然后再执行后面的语句

其实for与while我认为就是一种循环,只不过写法不同罢了,完全可以写成这样:

int a = 0;
while(a<5){
sum=sum+a;
++a;

}

在你所写的两段代码中,a++和++a是没有区别的,都等价于a=a+1。

你的代码中没有区别
a++和++a的区别是先运算后增和先增后运算