今天看书无意间发现一个问题,i++和++i哪个效率更高,看了解释和汇编的过程,还是很有收获的,总结如下:
在内建数据库类型的情况下,效率没有区别;
在自定义数据类型的情况下,++i效率较高。
原因如下:++i在运算过程中不产生临时对象,返回的就是i,是个左值,类似++i=1这样的表达式是合法的,而i++在运算的过程中会产生临时对象,返回的是零时对象的值,是个右值,像i++=1这样的表达式是非法的。
简单说来,就是i++生成临时变量,而++i不生成临时变量。
今天看书无意间发现一个问题,i++和++i哪个效率更高,看了解释和汇编的过程,还是很有收获的,总结如下:
在内建数据库类型的情况下,效率没有区别;
在自定义数据类型的情况下,++i效率较高。
原因如下:++i在运算过程中不产生临时对象,返回的就是i,是个左值,类似++i=1这样的表达式是合法的,而i++在运算的过程中会产生临时对象,返回的是零时对象的值,是个右值,像i++=1这样的表达式是非法的。
简单说来,就是i++生成临时变量,而++i不生成临时变量。