相信学习过任何编程语言的都见过 i++和++i,并且老师也是三令五申的讨论这两个的区别,考试的时候总是拿出来吓唬学生。
总体的首先说一下这个教科书上的区别:i++是先用,后加,++i是先加后用。举个例子:int i=3,j=3;int a = ++i;,int b = j++;那么a是4,b是3,但是最后i,j都是4.这个是教科书上说的,现在我们从内存的角度来看一下这个原理的东西。
i++:编译器是这样子干的:首先是把这个i 拷贝到一个内存区域,把这个拷贝的 i 数值返回,之后把原先的那个i 加1,随后编译器会把这个临时存储这个i 的拷贝的内存释放。
++i :这个就没有这么麻烦了。直接是把这个i 自动的加1,之后返回这个i 数值。
两个的比较就是:i++需要一个临时内存,但是++i 是不要的,而且他们两个比较就是多了一个临时变量。如果你在不需要特殊的使用他们的特性的时候,推荐使用++i ,提高性能。