首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

(++a)+=(a++)跟(++a)=(++a)+(a++)的区别

2013-03-04 
(++a)+(a++)和(++a)(++a)+(a++)的区别//前缀形式,如++aint &int::operator++(){*this+1return *this}

(++a)+=(a++)和(++a)=(++a)+(a++)的区别

//前缀形式,如++aint &int::operator++(){   *this+=1;   return *this;}//后缀形式,如a++,由于返回的是副本,所以设定了const int,因为给oldvalue赋值是危险的,函数出栈动作结束后,oldvalue就消失了。const int int::operator++(int){   int oldvalue=*this;   ++(*this);   return oldvalue;}
那么(++a)+=(a++)和(++a)=(++a)+(a++)的结果为什么不同呢?

首先,10和11,12和13的不同时由于a++造成的。

(++a)+=(a++)

其实是先++a,那么a变成5,(a++)之后返回副本值还是5,那么5+5为10。



热点排行