Permuter deux variables sans utilisation d'une variable temp
[Dal]
Messages postés6204Date d'inscriptionmercredi 15 septembre 2004StatutContributeurDernière intervention27 février 2025
-
Modifié le 30 mai 2022 à 02:11
Note : lami20j est l'auteur d'origine de l'astuce.
lami20j@debian:~/trash$ gccpermuter_var.c
lami20j@debian:~/trash$ ./a.out
Avant : a=2,b=<underline>5</underline>
Apres : a=<underline>5</underline>,b=2
Utilisation d'une macro
Code :
#include<stdio.h>#definePERMUTER(x,y) x ^= y, y ^= x, x ^= y
intmain(void){int a=2,b=5;printf("Avant : a=%d,b=%d\n",a,b);PERMUTER(a,b);printf("Apres : a=%d,b=%d\n",a,b);return0;}
Le résultat
vlmath@debian:~$ gccpermuter_var.c
vlmath@debian:~$ ./a.out
Avant : a=2,b=<underline>5</underline>
Apres : a=<underline>5</underline>,b=2
Remarque Le nom de la macro, ou de ses variables, peut naturellement être changé.