Le mécanisme d'appel de fonction en C++ consiste à transmettre des arguments à une fonction et à exécuter son code, en renvoyant le résultat s'il existe. Il existe deux manières de transmettre des paramètres : passer par valeur (les modifications sont effectuées à l'intérieur de la fonction) et passer par référence (les modifications sont reflétées dans l'appelant). En mode passage par valeur, les modifications de valeur au sein d'une fonction n'affectent pas la valeur d'origine (comme printValue), alors que les modifications en mode passage par référence affectent la valeur d'origine (comme printReference).
Explication détaillée du mécanisme d'appel de fonction C++
Introduction
En C++, l'appel de fonction est un mécanisme qui permet au programme d'effectuer des tâches spécifiques en passant des paramètres. L'appel de fonction implique les étapes suivantes :
Passage par valeur et passage par référence
Il existe deux mécanismes de passage de paramètres en C++ :
Appeler une fonction par valeur
void printValue(int value) { value++; // 对 value 的修改不会影响调用者传递的原始值 } int main() { int num = 10; printValue(num); cout << num << endl; // 输出 10 }
Appeler une fonction par référence
void printReference(int &value) { value++; // 对 value 的修改会影响调用者传递的原始值 } int main() { int num = 10; printReference(num); cout << num << endl; // 输出 11 }
Cas pratique
Supposons que nous ayons une fonction qui trouve le plus grand diviseur commun (PGCD). Le pseudo-code est le suivant. :
int gcd(int a, int b) { if (b == 0) { return a; } return gcd(b, a % b); }
Appel de la fonction gcd par valeur :
int main() { int a = 10, b = 12; int gcdValue = gcd(a, b); cout << "GCD: " << gcdValue << endl; // 输出 2 }
Dans ce cas, les valeurs originales de a et b ne seront pas affectées par les modifications de paramètres dans la fonction gcd.
Appel de la fonction gcd par référence :
int main() { int a = 10, b = 12; gcd(a, b); cout << "GCD: " << a << endl; // 输出 2 }
En utilisant le passage par référence, la fonction peut modifier la valeur de a. Par conséquent, l'appelant reçoit la valeur GCD et la stocke dans a.
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!