Смяна на две променливи без използване на временна променлива

Използване на указатели

 #include void change (int *, int *); int main () {int a = 2, b = 5; printf ("Преди: a =% d, b =% d", a, b); промяна (& а, и б); printf ("След: a =% d, b =% d \ t return 0; } невалидна промяна (int * a, int * b) {* a + = * b; * b = * a- * b; * a = * a- * b; } 

Резултати

Преди: a = 2, b = 5

След: a = 5, b = 2

Използване на макрос

 #include #define SWAP (x, y) x ^ = y, y ^ = x, x ^ = y int main () {int a = 2, b = 5; printf ("Преди: a =% d, b =% d", a, b); SWAP (а, Ь); printf ("След: a =% d, b =% d \ t return 0; } 

Резултати

Преди: a = 2, b = 5

След: a = 5, b = 2

Отбележи, че:

Името на макроса или променливите може да бъде променено според вашето удобство.

Предишна Статия Следваща Статия

Топ Съвети