¿Cuál es la diferencia entre ++i y i++?

2 minutos de lectura

avatar de usuario
El.Anti.9

En C, ¿cuál es la diferencia entre usar ++i y i++y que debe ser utilizado en el bloque de incremento de un for ¿círculo?

  • No estoy seguro de que el cartel original esté interesado, pero en C++ la diferencia en el rendimiento puede ser sustancial, ya que la creación del objeto temporal puede ser costosa para un tipo definido por el usuario.

    – Sobre Freund

    24 de agosto de 2008 a las 5:57

avatar de usuario
párrafo

yo ++ que se conoce como Incremento de publicación mientras ++i se llama Incremento previo.

i++

i++ es post incremento porque incrementa i‘s valor por 1 después de que la operación ha terminado.

Veamos el siguiente ejemplo:

int i = 1, j;
j = i++;

Aquí valor de j = 1 pero i = 2. Aquí valor de i será asignado a j primero luego i se incrementará.

++i

++i es pre incremento porque incrementa i‘s valor por 1 antes de la operación. Significa j = i; se ejecutará después i++.

Veamos el siguiente ejemplo:

int i = 1, j;
j = ++i;

Aquí valor de j = 2 pero i = 2. Aquí valor de i será asignado a j después de la i incremento de i. Similarmente ++i se ejecutará antes j=i;.

para tu pregunta ¿Cuál debería usarse en el bloque de incremento de un bucle for? la respuesta es, puedes usar cualquiera… no importa. Ejecutará su bucle for con el mismo número. de tiempos

for(i=0; i<5; i++)
   printf("%d ",i);

Y

for(i=0; i<5; ++i)
   printf("%d ",i);

Ambos bucles producirán la misma salida. es decir 0 1 2 3 4.

Solo importa dónde lo estás usando.

for(i = 0; i<5;)
    printf("%d ",++i);

En este caso, la salida será 1 2 3 4 5.

En palabras simples, la diferencia entre ambos está en los pasos, mira la imagen a continuación.

ingrese la descripción de la imagen aquí

Ejemplo:

int i = 1;
int j = i++;

Él j el resultado es 1

int i = 1;
int j = ++i;

Él j el resultado es 2

Nota: en ambos casos i valores es 2

avatar de usuario
felipe augusto

i++: En este escenario, primero se asigna el valor y luego ocurre el incremento.

++i: En este escenario primero se realiza el incremento y luego se asigna el valor

A continuación se muestra la visualización de la imagen y también aquí hay un buen video práctico lo que demuestra lo mismo.

ingrese la descripción de la imagen aquí

avatar de usuario
felipe augusto

Ambos incrementan el número. ++i es equivalente a i = i + 1.

i++ y ++i son muy similares pero no exactamente iguales. Ambos incrementan el número, pero ++i incrementa el número antes de que se evalúe la expresión actual, mientras que i++ incrementa el número después de evaluar la expresión.

Ejemplo:

int i = 1;
int x = i++; //x is 1, i is 2
int y = ++i; //y is 3, i is 3

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad