因为现在在看典型运算符的重载,其中有对前缀++和后缀++的重载,又忘记了它们之间的区别,去论坛看了下得到了很好的理解,
区别:
引用论坛中博友的话:
前缀就是自己本身+1
后缀就是给一个没+1的副本使用
对于这句话我大概理解到了,不过这针对的应该是返回值来说的。
++i和i++连起来应该看是一个函数的缩写 。可以对照运算符重载中对增量运算符的重载。
然后又通过下面博友的话,我就逐渐清晰了:
int i = 0, n = 0;
int test = ++i;
//此时,test等于1,i也等于1test = n++;
//此时,test等于0,n等于1因此,要说本质区别就是前缀加加返回自增后的自己,而后缀加加是返回自增前的值
通过联想for循环中使用的++i,和i++,曾经隐约记得老师上课好像说使用++i比较好,效率更高,但是之后就逐渐模糊到底哪个更好了,因为总是记不住他们到底有啥区别。
下面自己写个程序加深下印象:
代码如下:
#include <iostream>
using namespace std;
int main()
{
int j=0,k=0;
int suffix_plus=j++;
int prefix_plus=++k;
cout<<"后缀++:suffix_plus=j++; suffix_plus="<<suffix_plus<<endl;
cout<<"前缀++:prefix_plus=++k; suffix_plus="<<prefix_plus<<endl;
cout<<"输出运算中的‘副本’"<<endl;
cout<<"j++后的i= "<<j<<endl;
cout<<"++k后的k= "<<k<<endl;
return 0;
}
运行结果:
写在这里防止之后自己又忘了,记录下,继续奋斗~