Fonctions et passage de paramètres
Les paramètres sont copiés par défaut ; la modification de l’objet doit être explicitement autorisée.
Qu’est-ce que Fonctions et passage de paramètres ?
Les paramètres sont copiés par défaut ; la modification de l’objet doit être explicitement autorisée.
Comparez passage par valeur, pointeurs et références.
Points importants
- Activez les avertissements du compilateur et corrigez-les.
- Connaissez le type et la durée de vie de chaque valeur.
- Validez les entrées et les limites des tableaux.
Exemples de code C et C++
main.c
#include <stdio.h>
void swap_ints(int *left, int *right) {
int temporary = *left;
*left = *right;
*right = temporary;
}
int main(void) {
int a = 4, b = 9;
swap_ints(&a, &b);
printf("%d %d\n", a, b);
return 0;
}
9 4
C++
main.cpp
#include <iostream>
void swap_ints(int& left, int& right) {
int temporary = left;
left = right;
right = temporary;
}
int main() {
int a = 4, b = 9;
swap_ints(a, b);
std::cout << a << ' ' << b << '\n';
}
9 4
Comparaison entre C et C++
C passe une adresse puis la déréférence. Les références C++ offrent une syntaxe d’alias et const exprime un accès en lecture seule.
C
C expose de petites API procédurales et les détails de représentation.
C++
C++ conserve le modèle bas niveau et ajoute des types et abstractions plus sûrs.
Exercices pratiques
Exécutez les deux versions puis modifiez-les pour observer leurs garanties.
- Ajoutez des entrées invalides et limites.
- Compilez avec -Wall -Wextra -Wpedantic.
- Séparez déclarations et implémentations.