Passer des tableaux à des fonctions : une énigme historique
Malgré notre capacité à transmettre de manière transparente des instances de classe complexes à des fonctions, la question se pose : pourquoi peut-on ne faisons-nous pas la même chose avec les tableaux ? Cette énigme historique découle de la règle initiale selon laquelle les tableaux « se désintègrent en pointeurs » lorsqu'ils sont transmis aux fonctions.
Cette règle a été adoptée pour sa simplicité, garantissant un comportement cohérent entre les différents paramètres et déclarations de fonctions. À l'inverse, la copie de tableaux introduirait une complexité et une ambiguïté inutiles dans le code.
Cependant, il convient de noter que le passage indirect par valeur est toujours possible :
struct A { int arr[2]; }; void func(struct A);
En encapsulant le tableau dans une structure et en passant la structure en paramètre, nous évitons efficacement le passage direct par valeur du tableau tout en conservant le comportement souhaité.
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!