Passage par référence ou pointeur en C
En C, comprendre quand utiliser des références et des pointeurs peut être un sujet déroutant. Cet article explore les nuances du passage par référence et par pointeur, en fournissant des directives pratiques.
Passer par référence :
Le passage par référence est recommandé lorsque vous devez :
Passage par pointeur :
Le passage par pointeur est nécessaire lorsque :
Bonnes pratiques :
En règle générale, préférez passer par référence lorsque cela est possible. Cependant, lorsqu'il s'agit de littéraux, de pointeurs nuls ou de situations dans lesquelles vous devez modifier le pointeur lui-même, passez par pointeur.
Exemple :
L'extrait de code fourni passe un pointeur vers un vecteur alloué dynamiquement à une carte. C'est une approche valable car nous devons à la fois créer un nouveau vecteur et le transmettre par référence à la carte. En utilisant des pointeurs, nous évitons d'avoir à copier l'intégralité du vecteur.
#include <iostream> #include <vector> #include <map> #include <string> #include <tr1/memory> #include <algorithm> using namespace std; using namespace std::tr1; int main(){ map<string, shared_ptr<vector<string>>> adjacencyMap; vector<string>* myFriends = new vector<string>(); myFriends->push_back(string("a")); myFriends->push_back(string("v")); myFriends->push_back(string("g")); adjacencyMap["s"] = shared_ptr<vector<string>>(myFriends); return 0; }
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!