Created
June 13, 2023 13:40
-
-
Save Naedri/4e1068be4a137b54c991ad91e64150b6 to your computer and use it in GitHub Desktop.
Exemples simples de fonctions de swap en C et en C++ pour différents types de passage de paramètres
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
void swapByCopy(int a, int b) { | |
int temp = a; | |
a = b; | |
b = temp; | |
} | |
// Le passage par pointeur pour obtenir un comportement similaire au passage par référence en C++. | |
// Cela implique de passer l'adresse des variables à une fonction et d'utiliser les pointeurs pour accéder et modifier les valeurs des variables d'origine. | |
void swapByPointer(int* a, int* b) { | |
int temp = *a; | |
*a = *b; | |
*b = temp; | |
} | |
void swapByAddress(int* a, int* b) { | |
int temp = *a; | |
*a = *b; | |
*b = temp; | |
} | |
int main() { | |
int x = 10; | |
int y = 20; | |
printf("Avant le swap : x = %d, y = %d\n", x, y); | |
swapByCopy(x, y); | |
printf("Après le swap par copie : x = %d, y = %d\n", x, y); | |
swapByPointer(&x, &y); | |
printf("Après le swap par pointeur : x = %d, y = %d\n", x, y); | |
swapByAddress(&x, &y); | |
printf("Après le swap par adresse : x = %d, y = %d\n", x, y); | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
// Le passage par référence permet de manipuler directement les variables d'origine sans avoir à passer par des pointeurs explicites. | |
void swapByReference(int& a, int& b) { | |
int temp = a; | |
a = b; | |
b = temp; | |
} | |
int main() { | |
int x = 10; | |
int y = 20; | |
std::cout << "Avant le swap : x = " << x << ", y = " << y << std::endl; | |
swapByReference(x, y); | |
std::cout << "Après le swap par référence : x = " << x << ", y = " << y << std::endl; | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment