Maison > développement back-end > C++ > Pointeurs dans les fonctions C : passer par valeur ou référence ?

Pointeurs dans les fonctions C : passer par valeur ou référence ?

Linda Hamilton
Libérer: 2024-12-30 21:20:11
original
461 Les gens l'ont consulté

Pointers in C   Functions: Pass by Value or Reference?

Passer des arguments de pointeur en C : passer par valeur ou passer par référence ?

En C, c'est une idée fausse courante selon laquelle passer un pointeur L’argument équivaut à passer par valeur. Cependant, ce n'est pas le cas.

Les pointeurs sont transmis par valeur

Lorsqu'un pointeur est passé à une fonction, la valeur de la Le pointeur, c'est-à-dire l'adresse mémoire vers laquelle il pointe, est copié dans la mémoire locale de la fonction. Cela signifie que toute modification apportée au pointeur à l'intérieur de la fonction n'affectera pas la variable de pointeur d'origine.

Modification de la valeur pointée

Cependant, les modifications apportées à la valeur vers laquelle pointe le pointeur seront être reflétées dans la variable d'origine. En effet, le pointeur lui-même stocke l'adresse de l'objet d'origine, pas l'objet lui-même.

Modification de la valeur du pointeur

Si vous souhaitez modifier la valeur du pointeur dans une fonction, vous devez utiliser un pointeur vers pointeur. Lorsque vous passez un pointeur vers un pointeur, l'adresse du pointeur d'origine est copiée dans la fonction. Cela vous permet de modifier le pointeur d'origine depuis la fonction.

Pratique standard

En C, il est acceptable et considéré comme une pratique standard d'utiliser un pointeur vers un pointeur comme un argument lorsque vous devez modifier la valeur du pointeur dans une fonction. Il s'agit d'une technique courante en C et C , car les références n'ont été introduites que dans les versions ultérieures de C .

Références vs pointeurs

En C moderne, les références sont préférées sur les pointeurs pour plusieurs raisons :

  • Moins de bruit syntaxique
  • Plus d'informations pour le compilateur
  • Dans le cas spécifique du pointeur vers pointeur, les références peuvent simplifier le code.

Cependant, les références ne sont pas prises en charge en C, et elles enfreignent la règle de passage par valeur .

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal