Transfert de paramètres entre les fonctions

1 par valeur

1 test int (int x) 
 2 { 
 3 x = x + 1 ; 
 4 Cout << << x endl;  5 Cout << & x << endl;  6 retour x; 7 } 8 9 int main () 10 {11 int a = 3 ; 12 test (a); 13 Cout << << une endl; 14 Cout << et un << endl; 15 return 0 ; 16}

Les résultats d'exploitation

4
000000EB483BFA70
3
000000EB483BFA94

À savoir: l'appel de la fonction affectée à l'unité de stockage de paramètres dans la pile, et l'affectation, et l'argument de paramètre fonctionnement indépendant

 

2 passe par

1 test int (int * x) 
 2 { 
 3 * x = * x + 1 ; 
 4 x * Cout << << endl;  5 Cout << & x << endl;  6 retour * x; 7 } 8 9 int main () 10 {11 int a = 3 ; 12 test (& a ); 13 Cout << << une endl; 14 Cout << et un << endl; 15 return 0 ; 16}

Les résultats d'exploitation

4
0000002BF814F980
4
0000002BF814F9A4

A savoir: appeler la fonction assignée aux points de pointeur de la pile des arguments, le pointeur de la calcule cellule, va changer la valeur de l'argument

3 passe par référence

1 essai int (int & x) 
 2 { 
 3 x = x + 1 ; 
 4 Cout << << x endl;  5 Cout << & x << endl;  6 retour x; 7 } 8 9 int main () 10 {11 int a = 3 ; 12 test (a); 13 Cout << << une endl; 14 Cout << et un << endl; 15 return 0 ; 16}

Les résultats d'exploitation

4
000000D1FF94F964
4
000000D1FF94F964

C'est: les références dans les arguments de la fonction d'appel a, x correspond à l'argument une référence à une autre, la mémoire n'est pas allouée sur la pile, le paramètre x du paramètre de fonctionnement correspond à une opération réelle et le fonctionnement de la pile d'économie

04/04/2020

 

Je suppose que tu aimes

Origine www.cnblogs.com/xiaofengyu96/p/12635471.html
conseillé
Classement