En C, passer des arguments aux fonctions par référence ou par pointeur est une pratique courante pour modifier les valeurs réelles en dehors de la portée de la fonction . Cependant, comprendre quand utiliser ce qui peut prêter à confusion.
Passage par référence
Le passage par référence permet un accès direct et une modification de la variable d'origine. Il est utile pour :
Passage par pointeur
Le passage par pointeur fournit un accès indirect à la variable via un pointeur. C'est nécessaire lorsque :
Bonnes pratiques
En règle générale, il est recommandé d'utiliser références lorsque :
Utilisez des pointeurs lorsque :
Exemple
L'extrait suivant illustre un scénario courant dans lequel une référence est utilisée pour transmettre un objet volumineux :
void foo(std::string& s) { s += "suffix"; }
Le passage par pointeur conviendrait dans ce cas si la fonction devait créer un nouvel objet chaîne :
void foo(std::string* s) { *s = "new string"; // Deallocates the old string }
Dans de rares cas, le passage par valeur peut également être approprié, comme comme lorsque copier un petit objet immuable (par exemple, un type primitif) n'est pas un problème.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!