i++表示先在表达式中使用i,之后再将i自增,即i = i + 1。
++i表示先将i的值加1,再在表达式中使用i。
举几个例子:
①求 i += i++;
#include<iostream>
using namespace std;
void main()
{
int i = 4;
i += i++;
cout<<"i = "<<i<<end;
}
分析:
i += i++相当于i = i + i++;
这里是后置++,因此咱先将i的值拿来用,即i = i + i = 8,但是i还要自增,则i = 8 + 1 =9.
②求 i += ++i;
#include<iostream>
using namespace std;
void main()
{
int i = 4;
i += ++i;
cout<<"i = "<<i<<end;
}
分析:
这里是后置++,因此在计算之前,先将i的值自增1,即i = i + 1 = 5;
i += ++i 相当于i = i +++i,由于我们自增过了,即i = i + i = 5 + 5 = 10.
③求++i += ++i;
#include<iostream>
using namespace std;
void main()
{
int i = 4;
++i += ++i;
cout<<"i = "<<i<<end;
}
分析:
++i += ++i相当于++i = (++i) + (++i);
由于右边表达式中有两个后++,则计算表达式之前,i = 4 + 1 + 1 = 6;
则原式 = i + i = 6 + 6 = 12.
若有理解有误的地方,欢迎大家指出,(*^__^*) 嘻嘻