剑指offer的代码中,for循环中全都用的是++i而不是之前惯用的i++,今天查了查才知道是两者的效率不一样。
++i相当于下列代码:
i += 1;
return i;
i++相当于下列代码 :
temp = i;
i += 1;
return temp;
i=i+1相当于下列代码 :
temp = i + 1;
i = temp;
可见++i不需要给中间变量赋值,++i的汇编比i++要简洁一些~,有一丢丢性能上的差别。
剑指offer的代码中,for循环中全都用的是++i而不是之前惯用的i++,今天查了查才知道是两者的效率不一样。
++i相当于下列代码:
i += 1;
return i;
i++相当于下列代码 :
temp = i;
i += 1;
return temp;
i=i+1相当于下列代码 :
temp = i + 1;
i = temp;
可见++i不需要给中间变量赋值,++i的汇编比i++要简洁一些~,有一丢丢性能上的差别。