效率比较:前增量效率高,后增量要创建一个临时对象。
使用前增量时,对对象(操作数)进行增量修改,然后再返回该对象.所以前增量运算符操作时,参数与返回的是同一个对象.着与基本数据类型的前增量操作相似,返回的也是左值.
使用后增量时,必须在增量之前返回原有的对象值.为此,需要创建一个临时对象,存放原有的对象,以便对操作数(对象)进行增量修改时,保存最初的值.后增量操作返回的是原有对象的值,不是原有对象,原有对象已被增量修改,所以返回的应该是存放原有对象值的临时对象.
int i = 1;
int x;
x = i++;//操作为:x=i;i=i+1;
cout<<"后增量"<<" "<<i<<" "<<x<<endl;//后增量,输出为:x=1,i=2
int m = 1;
int y;
y = ++m;//操作为:m=m+1;y=m;
cout<<"前增量"<<" "<<m<<" "<<y<<endl;//前增量,输出为:M=2,Y=2
#include<iostream.h>
void main()
{
int a=0,b=4,c=1;
a = (c+++b);
//++(c= a++);
//++(++a);
cout<<a<<endl<<b<<endl<<c;//输出为 5 4 2
}
相当于int x=c;//创建一个临时对象存放原有对象
++c;
a= (x+b);