Maison >développement back-end >C++ >Pointeurs dans les fonctions C : passer par valeur ou référence ?
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 :
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!