随笔记-for循环中++i和i++
刚开始刷力扣的时候注意到一个不太一样的点。
以前写for循环都是for(xxx;xxx;i++)
一路这么写过来,教材上面、老师讲课也一路是这么过来的。
但不太一样的是:发现力扣上的for循环都是这么写的for(xxx;xxx;++i)
,第三个语句都是++i而不是i++,而且并不只有for下、循环,题解中涉及自增自减几乎都是这样。
当然,学过C++当然知道单说这两种写法的区别:
i++是用完再加;++i是加完再用
也就是说int i=1;cout<<i++;
输出是1,而cout<<++i;
输出则是2
但是我并不理解在for循环中这两种写法有什么区别,就循环结果而言,我认为是没有区别的,就一直有些不解。
今天去搜了一下,看到一篇博文上这个解释:
i++由于是在使用当前值之后再+1,所以需要一个临时变量来转存
而++i则是直接+1,省去了对内存的操作环节,相对而言能够提高性能
看起来像是那么回事,“更好的性能”看起来合情合理,只是有待查证,对于这个解释我也不是完全理解,mark一下先