i++ e ++i

Iniciado por FKT, 11 Agosto 2015, 13:57 PM

0 Miembros y 1 Visitante están viendo este tema.

FKT

Buenas, en mi libro de Hacking Técnicas fundamentales dice que  i++ e ++i  son iguales, vamos que es cuestión de gusto, pero informandome más sobre esto he leído que no es lo mismo, si es así necesitaria saber la diferencia.
Solo hay 10 tipos de personas, las que saben binario y las que no.

kub0x

Por ejemplo:

Código (cpp) [Seleccionar]

int i = 0;
std::cout << Array[i++] << std::endl;


Imprime el primer elemento (Array[0]) y después incrementa 'i'.

Código (cpp) [Seleccionar]

int i = 0;
std::cout << Array[++i] << std::endl;


Incrementa 'i' e imprime el segundo elemento (Array[1]).

Vamos que ++i incrementa primero y ejecuta la instrucción subyacente e i++ ejecuta la instrucción subyacente y después incrementa 'i'.

Saludos.
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


FKT

No lo entiendo, lo siento esque yo uso c jeje
Puedes explicarmelo con libreria <stdio.h> plis??
:rolleyes:
Solo hay 10 tipos de personas, las que saben binario y las que no.

DarK_FirefoX

Veamos:

En C esta el operador ++ para añadirle 1 al operando. El mismo puede ser utilizado como un operador de prefijo, o sea, antes de la variable:

++i;

O como operador de posfijo, después de la variable:

i++;

En ambos casos el objetivo es incrementar la variable i. Pero la si utilizas la operación prefija, el valor de la variable se incrementa ANTES de que su valor se utilice, mientras que en la operación posfija, la variable se incrementa DESPUÉS de que el valor de la variable sea utilizado:

Por ejemplo: si n tiene el valor 5 y haces:

int x = n++;

A la variable x se le asignará el valor 5 y luego n tendrá el valor 6.

Mientras que si haces:

int x = ++n;

Se le incrementará el valor a n en 1 (n va a ser igual a 6) y luego ese valor se le asignará a x, por lo tanto x obtendrá el valor 6.

Espero te haya quedado claro ahora.

Salu2s

FKT

Pues me has aclarado la duda super bien, pero un ejemplo de algun caso que se utilice ell sufijo ??

Salu2 y gracias. ;D
Solo hay 10 tipos de personas, las que saben binario y las que no.

ivancea96

Código (cpp) [Seleccionar]
int length = 0;
char c[] = "Asd";
while(c[length++]);
// Ahora, length es la longitud de la cadena


Por ejemplo. Pero en cualquier caso, si no ves dónde usarlo, tal vez sea porque no hay lugar para usarlo. Ya surgirá la ocasión donde digas "aquí, aquí lo necesito" xD

Pero bueno. El postincremento y postdecremento no suelen ser "necesarios". Suelen ser más bien para ahorrarte una o dos lineas.

FKT

#6
Cita de: ivancea96 en 11 Agosto 2015, 22:17 PM

Por ejemplo. Pero en cualquier caso, si no ves dónde usarlo, tal vez sea porque no hay lugar para usarlo. Ya surgirá la ocasión donde digas "aquí, aquí lo necesito" xD

Pero bueno. El postincremento y postdecremento no suelen ser "necesarios". Suelen ser más bien para ahorrarte una o dos lineas.

Eso es lo que queria oír haha, muchas gracias a todos y veo que ivancea96 estas muy presente así que muchas gracias también.
Solo hay 10 tipos de personas, las que saben binario y las que no.