Was ist der Unterschied zwischen call by value, call by address und call by reference in tabellarischer Form unter C ++?


Antwort 1:

Die Methode call by value zum Übergeben von Argumenten an eine Funktion kopiert den tatsächlichen Wert eines Arguments in den formalen Parameter der Funktion.

C ++ Funktionsaufruf per Zeiger. Die Call-by-Pointer-Methode zum Übergeben von Argumenten an eine Funktion kopiert die Adresse eines Arguments in den formalen Parameter. Innerhalb der Funktion wird die Adresse verwendet, um auf das im Aufruf verwendete Argument zuzugreifen.

Die Methode call by reference zum Übergeben von Argumenten an eine Funktion kopiert die Referenz eines Arguments in den formalen Parameter. Innerhalb der Funktion wird die Referenz verwendet, um auf das im Aufruf verwendete Argument zuzugreifen. Änderungen am Parameter wirken sich also auf das übergebene Argument aus.


Antwort 2:

C ++ unterstützt Call-by-Value-, Call-by-Reference- und Call-by-Address-Typen der Permeter-Übergabe.

Call by Value: Bei dieser Art von Permeter werden übergebene Istwerte als Argumente im Funktionsaufruf übergeben.

Ex. Summe (4,6)

Aufruf per Referenz: Bei diesem Typ wird die Referenz dieser Variablen beim Funktionsaufruf übergeben. Referenz ist der andere Name, der einer bereits vorhandenen Variablen gegeben wird.

Aufruf nach Zeiger / Adresse: Bei dieser Art von Permeter wird die Übergabeadresse der Variablen an die Funktion übergeben.

Ex. Summe (& a, & b)


Antwort 3:

Call by Value bedeutet # include # include int Funktion (int); int main () {int a = 3; int b; b = Funktion (a); Cout << a << "" << b << endl; getch (); return (0);} int function (int c) {c = c + 1; return (c);} Wenn Sie diesen Code ausführen, wird a = 3b = ausgegeben 4. Now in call von addressSame header filesint function (int *) int main () {Gleicher Code beim Aufruf von lineb = function (& a); Gleicher Code bis geschweifte Klammern} int function (int * p) {* p = * p + 1 ; return (* p);} Jetzt wird a = 5b = 5 ausgegeben. Now in call by reference Gleicher Code, aber Funktionsdeklaration ist int function (int &); int main () {Gleicher Code, aber Aufruf von isb = function (a ); Gleicher Code in geschweiften Klammern} int Funktion (int & r) {r = r + 1; return (r);}


Antwort 4:

Hallo,

Nennen Sie nach Wert

Die Methode call by value zum Übergeben von Argumenten an eine Funktion kopiert den tatsächlichen Wert eines Arguments in den formalen Parameter der Funktion. In diesem Fall haben Änderungen am Parameter innerhalb der Funktion keine Auswirkungen auf das Argument.

Standardmäßig verwendet C ++ Call-by-Value, um Argumente zu übergeben. Im Allgemeinen bedeutet dies, dass Code in einer Funktion die zum Aufrufen der Funktion verwendeten Argumente nicht ändern kann.

Leerer Swap (int x, int y) {
   int temp;

   temp = x; / * speichere den Wert von x * /
   x = y; / * setze y in x * /
   y = temp; / * setze x in y * /
  
   Rückkehr;
}

Rufen Sie per Referenz an

Die Methode call by reference zum Übergeben von Argumenten an eine Funktion kopiert die Referenz eines Arguments in den formalen Parameter. Innerhalb der Funktion wird die Referenz verwendet, um auf das im Aufruf verwendete Argument zuzugreifen. Änderungen am Parameter wirken sich also auf das übergebene Argument aus.

Um den Wert als Referenz zu übergeben, wird die Argumentreferenz wie jeder andere Wert an die Funktionen übergeben.

Leerer Swap (int & x, int & y) {
   int temp;
   temp = x; / * speichere den Wert an Adresse x * /
   x = y; / * setze y in x * /
   y = temp; / * setze x in y * /
  
   Rückkehr;
}

Anruf per Zeiger oder Anruf per Adresse

Die Call-by-Pointer-Methode zum Übergeben von Argumenten an eine Funktion kopiert die Adresse eines Arguments in den Formalparameter. Innerhalb der Funktion wird die Adresse verwendet, um auf das im Aufruf verwendete Argument zuzugreifen. Änderungen am Parameter wirken sich also auf das übergebene Argument aus.

Um den Wert als Zeiger zu übergeben, werden Argumentzeiger wie jeder andere Wert an die Funktionen übergeben.

Leerer Swap (int * x, int * y) {
   int temp;
   temp = * x; / * speichere den Wert an Adresse x * /
   * x = * y; / * setze y in x * /
   * y = temp; / * setze x in y * /
  
   Rückkehr;
}

Vielen Dank.


Antwort 5:

Zunächst müssen wir wissen, was eine Funktion ist: Eine Funktion ist eine Gruppe von Anweisungen, die ausgeführt werden, wenn die Funktion von einem anderen Ort des Quellcodes aufgerufen wird.

Die Funktion ist der Hauptteil eines Codes, der eine Aufgabe ausführt.

Um eine Aufgabe zu erledigen, ist es für die Funktion wesentlich, einige Werte zu nehmen und den Unterschied zwischen Aufrufen nach Wert und Aufrufen nach Referenz zurückzugeben. Bei Aufrufen nach Wert wird eine Kopie der tatsächlichen Argumente an die formalen Argumente der aufgerufenen Funktion übergeben und alle Änderungen an den formalen Argumenten vorgenommen in der aufgerufenen Funktion haben keinen Einfluss auf die Werte der tatsächlichen Argumente in der aufrufenden Funktion. Beim Aufruf als Referenz wird die Position (Adresse) der tatsächlichen Argumente an die formalen Argumente der aufgerufenen Funktion übergeben. Dies bedeutet, dass wir durch Zugriff auf die Adressen der tatsächlichen Argumente diese innerhalb der aufgerufenen Funktion ändern können. Die Call-by-Reference-Methode zum Übergeben von Argumenten an eine Funktion kopiert die Adresse eines Arguments in den Formalparameter. Innerhalb der Funktion wird die Adresse verwendet, um auf das im Aufruf verwendete Argument zuzugreifen. ... Um einen Wert als Referenz zu übergeben, werden Argumentzeiger wie jeder andere Wert an die Funktionen übergeben. Die Methode call by value zum Übergeben von Argumenten an eine Funktion kopiert den tatsächlichen Wert eines Arguments in den formalen Parameter der Funktion. ... Standardmäßig verwendet C ++ Call-by-Value, um Argumente zu übergeben. Im Allgemeinen bedeutet dies, dass Code in einer Funktion die zum Aufrufen der Funktion verwendeten Argumente nicht ändern kann.