Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: FKT en 11 Agosto 2015, 13:57 PM

Título: i++ e ++i
Publicado por: FKT en 11 Agosto 2015, 13:57 PM
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.
Título: Re: i++ e ++i
Publicado por: kub0x en 11 Agosto 2015, 14:02 PM
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.
Título: Re: i++ e ++i
Publicado por: FKT en 11 Agosto 2015, 18:17 PM
No lo entiendo, lo siento esque yo uso c jeje
Puedes explicarmelo con libreria <stdio.h> plis??
:rolleyes:
Título: Re: i++ e ++i
Publicado por: DarK_FirefoX en 11 Agosto 2015, 18:35 PM
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
Título: Re: i++ e ++i
Publicado por: FKT en 11 Agosto 2015, 22:11 PM
Pues me has aclarado la duda super bien, pero un ejemplo de algun caso que se utilice ell sufijo ??

Salu2 y gracias. ;D
Título: Re: i++ e ++i
Publicado por: ivancea96 en 11 Agosto 2015, 22:17 PM
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.
Título: Re: i++ e ++i
Publicado por: FKT en 11 Agosto 2015, 23:21 PM
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.