Scambiare due variabili senza utilizzare una variabile temporanea

Usando i puntatori

 #include void change (int *, int *); int main () {int a = 2, b = 5; printf ("Prima: a =% d, b =% d \ n", a, b); cambio (& a, & b); printf ("Dopo: a =% d, b =% d \ n", a, b); ritorno 0; } void change (int * a, int * b) {* a + = * b; * b = * a- * b; * a = * a- * b; } 

risultati

Prima: a = 2, b = 5

Dopo: a = 5, b = 2

Facendo uso di una macro

 #include #define SWAP (x, y) x ^ = y, y ^ = x, x ^ = y int main () {int a = 2, b = 5; printf ("Prima: a =% d, b =% d \ n", a, b); SWAP (a, b); printf ("Dopo: a =% d, b =% d \ n", a, b); ritorno 0; } 

risultati

Prima: a = 2, b = 5

Dopo: a = 5, b = 2

Nota che:

Il nome della macro o delle variabili può essere cambiato a tuo piacimento.

Articolo Precedente Articolo Successivo

I Migliori Consigli