Maison > Article > développement back-end > Comment l'appel par valeur affecte-t-il la modification des arguments en C ?
Comprendre l'appel par valeur en C
Dans cet exemple d'appel par valeur, une fonction appelée changeValue() prend un entier argument, qui représente une copie de l’argument réel transmis par la fonction main(). Lorsque la fonction change la valeur de l'argument à 6, elle modifie la copie et non la valeur originale stockée dans la fonction main().
En effet, l'appel par valeur crée une nouvelle copie de l'argument et le transmet à la fonction. Par conséquent, toute modification apportée à la copie à l'intérieur de la fonction n'affectera pas la valeur d'origine.
Résoudre le problème à l'aide de l'appel par référence
Pour modifier l'argument d'origine envoyé depuis main(), nous devons utiliser l’appel par référence. Cela implique de transmettre une référence (un alias) à l'argument réel, plutôt qu'une copie.
Dans l'exemple, cela peut être réalisé en changeant la signature de la fonction changeValue() en :
void changeValue(int &value)
En utilisant une esperluette (&) avant le type d'argument, nous indiquons que la fonction reçoit une référence à la variable d'origine. Toute modification apportée à la référence affectera directement l'argument d'origine dans main().
Code révisé :
#includeusing namespace std; void changeValue(int &value); int main() { int value = 5; changeValue(value); cout << "The value is : " << value << "." << endl; return 0; } void changeValue(int &value) { value = 6; }
Avec ce changement, lorsque changeValue() définit la référence à 6, la valeur d'origine dans main() sera modifiée en 6, ce qui donnera la sortie "La valeur est : 6.".
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!