Maison >développement back-end >C++ >Pointeurs en C : passage par valeur ou passage par référence : que dois-je utiliser ?
Passer des pointeurs par valeur ou par référence
Lors du passage de pointeurs vers des fonctions, il est important de comprendre la différence entre le passage par valeur et passant par référence.
Dans l'exemple fourni, la fonction clickOnBubble tente de définir la valeur de targetBubble sur un pointeur stocké dans le vecteur de bulles. Cependant, la fonction transmet uniquement une copie de targetBubble à la fonction, donc toute modification apportée à la copie dans la fonction ne sera pas reflétée dans le pointeur d'origine.
Passage par référence avec pointeur vers -Pointeur
Pour changer le pointeur d'origine, il faut le passer par référence. Cela peut être fait à l'aide d'un pointeur vers un pointeur, comme indiqué dans le code suivant :
void foo(int **ptr) { *ptr = new int[10]; // Just for example, use RAII in a real-world application }
Dans cet exemple, ptr est un pointeur vers un pointeur. Lorsque la fonction est appelée, l'adresse de targetBubble est transmise à la fonction. La fonction peut ensuite utiliser l'opérateur de double indirection (**) pour accéder et modifier le pointeur targetBubble d'origine.
Passage par référence avec référence au pointeur
Un autre La façon de passer un pointeur par référence est d'utiliser une référence à un pointeur, comme indiqué dans ce qui suit code :
void bar(int *&ptr) { ptr = new int[10]; }
Ici, ptr est une référence à un pointeur. Lorsque la fonction est appelée, la référence est liée à targetBubble. La fonction peut alors modifier targetBubble directement via la référence.
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!