Maison >développement back-end >C++ >Le C transmet-il les objets par valeur ou par référence ?

Le C transmet-il les objets par valeur ou par référence ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-05 00:15:121027parcourir

Does C   Pass Objects by Value or by Reference?

C transmet-il des objets par valeur ou référence ?

Question :

En C, il semble y avoir une certaine ambiguïté quant à savoir si les objets sont transmis par valeur ou par référence à des fonctions. Bien que les types de données simples comme les entiers et les flottants soient transmis par valeur, on ne sait pas exactement ce qui se passe avec les tableaux et les objets. C transmet-il des objets par valeur ou par référence ?

Réponse :

En C, la transmission d'arguments se fait principalement par valeur, ce qui signifie qu'une copie de l'argument est créée et transmise à la fonction. Cependant, il existe des moyens de passer des arguments par référence, permettant à la fonction de modifier directement la variable d'origine.

Plus précisément :

  • Dans void foo(type arg), l'argument arg est passé par valeur. Cela s'applique aux types simples, aux pointeurs et aux types de classe. Dans le cas des tableaux, un pointeur vers le premier élément est passé, pas une copie du tableau.
  • Dans void foo(type& arg), l'argument arg est passé par référence. Cela permet à la fonction de modifier la variable d'origine.
  • Pour les tableaux, si la taille du tableau est connue au moment de la compilation, elle peut être passée par référence en utilisant void foo(type (&arg)[10]).

Par conséquent, en C , les objets sont généralement transmis par valeur, à moins qu'ils ne soient explicitement spécifiés comme passage par référence via l'utilisation de l'opérateur de 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn