Ich erwarte, dass der Ausgang 2 ist. Warum passiert das nicht? Eine einfache Erklärung, da ich gerade erst angefangen habe, C++ zu lernen. Könnten Sie dann erklären, warum die folgenden Ausbeuten 5:Warum berücksichtigt der Ausgang die Funktion nicht?
void func(int x)
{
x = 2;
}
void function(int *x)
{
*x = 5;
}
int main()
{
int x = 3;
func(x);
function(&x);
cout << "x = "<< x << endl;
return 0;
}
Mögliches Duplikat von [Wenn ich einen Parameter in einer Funktion ändere, ändert sich das auch für den Aufrufer?] (Http://stackoverflow.com/questions/1698660/when-i-change-a-parameter-inside -a-function-do-it-change-for-the-caller-too) –
Siehe auch http://stackoverflow.com/questions/11736306/when-pass-a-variable-to-a-function-why- the-function-only-erhält-ein-Duplikat-von-th, http://stackoverflow.com/questions/21215409/does-compass-objects-by-value-or-reference und ein grundlegendes Tutorial zu C++ Funktionen: http://www.cplusplus.com/doc/tutorial/functions/, und für Ihr Zeigerbeispiel: http://cslibrary.stanford.edu/104/ (die C++ - Version). –