【C++】前缀++和后缀++的区别
因为现在在看典型运算符的重载,其中有对前缀++和后缀++的重载,又忘记了它们之间的区别,去论坛看了下得到了很好的理解,
区别:
引用论坛中博友的话:
前缀就是自己本身+1 后缀就是给一个没+1的副本使用
对于这句话我大概理解到了,不过这针对的应该是返回值来说的。
++i和i++连起来应该看是一个函数的缩写 。可以对照运算符重载中对增量运算符的重载。
然后又通过下面博友的话,我就逐渐清晰了:
int i = 0, n = 0; int test = ++i; //此时,test等于1,i也等于1 test = 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; }
运行结果:
写在这里防止之后自己又忘了,记录下,继续奋斗~