Referenzen

Neue Frage »

Auf diesen Beitrag antworten »
infoubi Referenzen

Hallo, ich habe eine Frage bezüglich einer Aufgabe und ich weiss nicht, ob ich sie richtig verstanden habe.

Also ich habe folgende zwei Funktionen:

void proc1 (int* n, int &m)
{
*n = *n +5;
std::cout << *n * m;
}

void proc2 (int* n; int m)
{
*n= *n+5;
std::cout << *n * m;
}


Dazu noch zwei Main Methoden:

Die erste lautet:

int main()
{
int k=5;
proc1(&k,k)
return 0;
}

und die andere lautet:

int main()
{
int k=5;
proc2(&k,k)
return 0;
}


Die Frage ist nun, was die jeweiligen main Funktionen ausgeben.

Ich habe ein bisschen ein Problem mit den Referenzen bzw. nicht-Referenzen.

Ich weiss, dass das die erste Main Funktion 100 ausgibt und die zweite nur 50. Das liegt daran, dass m einmal als Referenz genommen wird und einmal nicht.. Aber kann mir das jemand genau erklären? Irgendwie Schritt für Schritt? Also wann wie was genau verändert wird?

Ich habe manchmal Mühe, mir das aufzuschreiben oder aufzuzeichnen. Also allgemein das Vorgehen bei solchen Aufgaben mit Referenzen.

Ich danke euch vielmals!
 
Auf diesen Beitrag antworten »
eulerscheZahl

1. Funktion:
du übergibst zwei Zeiger an die Funktion, die beide auf die selbe Speicherstelle zeigen. Wenn du jetzt über den einen Zeiger den Inhalt der Variablen änderst, ändert sich auch der Wert der anderen Variablen, da es die selbe Adresse im Speicher ist.

2. Funktion:
du übergibst einen Zeiger und eine Zahl. Das sind im Speicher zwei verschiedene Stellen. Wenn du die eine Stelle im Speicher überschreibst, ändert das nicht die andere, m bleibt daher 5.
Auf diesen Beitrag antworten »
infoubi

ok, ich danke dir für deine hilfe! smile
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »