Maison > développement back-end > C++ > L'argument du pointeur C transmet-il réellement une valeur transmise ?

L'argument du pointeur C transmet-il réellement une valeur transmise ?

DDD
Libérer: 2024-12-15 02:37:09
original
183 Les gens l'ont consulté

Is C   Pointer Argument Passing Truly Pass-by-Value?

La transmission d'un argument de pointeur est-elle transmise par valeur en C ?

En C, passer un argument de pointeur est en effet une transmission par valeur. Cela signifie qu'une copie du contenu de la variable pointeur (l'adresse de l'objet pointé) est transmise à la fonction.

Toute modification apportée à la valeur du pointeur dans le corps de la fonction n'affectera pas le pointeur d'origine à l'extérieur. la fonction. Cependant, les modifications apportées à la valeur de l'objet pointé sont reflétées.

Utilisation du pointeur vers le pointeur comme argument de fonction

Pour modifier la valeur du pointeur elle-même dans une fonction, un pointeur vers un pointeur doit être utilisé comme argument. Cette technique est acceptable et constitue la procédure standard pour de tels scénarios. En utilisant l'opérateur & avant l'argument du pointeur, l'adresse du pointeur est transmise.

Références vs pointeurs

Bien que l'utilisation de pointeurs pour obtenir ce comportement soit une pratique courante , en C , l'utilisation de références est généralement préférée aux pointeurs pour plusieurs raisons :

  • Complexité syntaxique réduite en fonction bodys
  • Fourniture de plus d'informations au compilateur

Inconvénients des références

  • Briser la règle du passage par valeur, nécessitant une attention particulière au comportement des paramètres
  • Non pris en charge par C

Dans le cas spécifique du pointeur vers des pointeurs, l'utilisation de références simplifie la mise en œuvre. Il peut même être possible d'éliminer complètement les niveaux de pointeur, en passant une seule référence à la place.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal