Intercambiar dos variables sin usar una variable temporal

Usando punteros

 #incluir el cambio de vacío (int *, int *); int main () {int a = 2, b = 5; printf ("Antes: a =% d, b =% d \ n", a, b); cambio (& a, & b); printf ("Después de: a =% d, b =% d \ n", a, b); devuelve 0; } cambio de vacío (int * a, int * b) {* a + = * b; * b = * a- * b; * a = * a- * b; } 

Resultados

Antes: a = 2, b = 5

Después: a = 5, b = 2

Haciendo uso de una macro

 # incluye # define SWAP (x, y) x ^ = y, y ^ = x, x ^ = y int main () {int a = 2, b = 5; printf ("Antes: a =% d, b =% d \ n", a, b); SWAP (a, b); printf ("Después de: a =% d, b =% d \ n", a, b); devuelve 0; } 

Resultados

Antes: a = 2, b = 5

Después: a = 5, b = 2

Tenga en cuenta que:

El nombre de la macro o las variables se puede cambiar a su conveniencia.

Artículo Anterior Artículo Siguiente

Los Mejores Consejos