Les fonctions C++ ont deux comportements lors du renvoi d'un tableau : une copie est renvoyée par valeur et les modifications apportées à la copie n'affectent pas le tableau d'origine ; une référence au tableau d'origine est renvoyée par référence et les modifications apportées au tableau renvoyé sont directement reflétées. dans le tableau d'origine.
En C++, les fonctions peuvent renvoyer différents types de données, y compris des tableaux. Lorsqu'une fonction renvoie un tableau, il existe deux comportements différents :
Lorsque vous renvoyez un tableau par valeur, la fonction crée une copie du tableau et la renvoie à l'appelant. Cela crée une nouvelle copie de la mémoire et toute modification apportée à cette copie n'affectera pas le tableau d'origine.
Syntaxe :
int* foo() { int arr[] = {1, 2, 3}; return arr; }
Cas pratique :
int main() { int* arr = foo(); arr[0] = 10; // 更改副本值,不影响原始数组 return 0; }
Lors du retour d'un tableau par référence, la fonction renvoie directement une référence au tableau d'origine. Cela ne crée pas de nouvelle copie de la mémoire, ce qui signifie que toute modification apportée au tableau renvoyé sera reflétée directement dans le tableau d'origine.
Syntaxe :
int* &bar() { static int arr[] = {1, 2, 3}; return arr; }
Cas pratique :
int main() { int* &arr = bar(); arr[0] = 10; // 更改原始数组值 return 0; }
Caractéristiques | Retour par valeur | Retour par référence |
---|---|---|
Retourner une copie de | Oui | Non |
Les modifications apportées au tableau renvoyé | n'affectent pas le tableau d'origine | sont reflétées directement dans le tableau d'origine |
Surcharge de mémoire | Créez une copie, la surcharge de mémoire est plus élevée | Ne créez pas de copie, de mémoire les frais généraux sont inférieurs |
Efficacité | efficacité d'exécution inférieure | efficacité d'exécution supérieure |
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!