Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » Referenzen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Referenzen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
infoubi
Jungspund


Dabei seit: 30.07.2015
Beiträge: 14

Referenzen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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!
30.07.2015 09:36 infoubi ist offline Beiträge von infoubi suchen Nehmen Sie infoubi in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
30.07.2015 13:57 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
infoubi
Jungspund


Dabei seit: 30.07.2015
Beiträge: 14

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ok, ich danke dir für deine hilfe! smile
31.07.2015 20:31 infoubi ist offline Beiträge von infoubi suchen Nehmen Sie infoubi in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Informatik in der Schule » Referenzen