Skip to content

Instantly share code, notes, and snippets.

@Naedri
Created June 13, 2023 13:40
Show Gist options
  • Save Naedri/4e1068be4a137b54c991ad91e64150b6 to your computer and use it in GitHub Desktop.
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
#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;
}
#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