/ / diferencia entre ++ i y i ++ en for loop [cerrado] - post-incremento, pre-incremento

diferencia entre ++ i y i ++ en for loop [cerrado] - post-incremento, pre-incremento

Entiendo bien cómo funcionan los incrementos / decrementos de prefijo y prefijo. Pero mi pregunta es, en un bucle for, que es más eficiente o más rápido, y que se usa más comúnmente y ¿por qué?

¿Prefijo?

for(i = 0; i < 3; ++i) {...}

¿O postfix?

for(i = 0; i < 3; i++) {...}

Respuestas

0 para la respuesta № 1

En este caso particular, ninguno es realmente más eficiente que el otro. Yo esperaría ++i para ser usado más comúnmente, porque eso es lo que sería más eficiente para otros tipos de iteraciones, como los objetos iteradores.


1 para la respuesta № 2

por intEn este contexto, no hay ninguna diferencia: el compilador emitirá el mismo código en la mayoría de los niveles de optimización (me atrevo a decirlo incluso en el caso de que no haya optimización).

En otros contextos, como con las instancias de clase C ++, hay alguna diferencia.


0 para la respuesta № 3

En mi opinión, la elección de prefijo o postfix en unPara bucle depende del lenguaje en sí. En c ++ el prefijo es más eficiente y consistente. Debido a que en el tipo de prefijo, el compilador no necesita copiar el valor no incrementado. Además, su valor no debe ser un número entero, si su valor es un objeto más poderoso que este tipo de prefijo.


0 para la respuesta № 4

Cualquiera de los dos funciona, y uno no es más eficiente o más rápido que el otro en este caso. Es común que las personas usen ++ 1, tal vez porque eso es lo que se usó en K&R y otros libros influyentes.