i++与++i的意思都是i自身加1,不过这个两个语句却有很大的区别。
++i,就是直接在i上再加1,这个无需多解释。
i++会稍微特殊些,他会在下次执行语句,再遇到i时,才会在i身上加1。
打个比方,来看看这个语句。
int i = 2;
i = 7 + i++;
这两个语句结束后,i的值为9,如果等到下一次有语句再会用到i这个变量的话,i的值就会变成10。假如我们在刚才的语句下面再加一句话的话,就会是这样:
int i = 2;
i = 7 + i++;
int u = i + 5;
语句执行完毕后,u的值为15,因为在第3句话执行的时候,i的值就从9变成10了。
所以i++的使用,是一个非常危险的行为,可能会导致难以检查的错误,我们来看下面一个例子:
int i = 6;
i++;
if( i = 6)
{
printf("test1\n");
}
if (i = 7)
{
printf("test2\n");
}
输出结果为:
test1
tese2
我们可以看到,在上面这个例子中,两个if语句中的内容,都被执行了,这一点是和人们的惯性思维相悖的,所以从这一点来将的话,我们在编程的过程中,为了保证代码的安全性,应该尽可能的使用++i这样的形式,避免使用i++这样形式的代码