Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: procedure...(var i,j: integer) - Erklärung für das "

  Alt 9. Nov 2003, 11:53
Zitat von Hansa:
Ich würde mir da keine großen Gedanken machen, was im Speicher passiert, sondern wie die Logik in Delphi für so was aussieht und was mit den Gültigkeitsbereichen ist.
Ich schon. Man soll es ja auch verstehen. Und was ist so schlimm daran es gleich richtig und verständlich erklären zu wollen? Das Alter, in dem man ihm noch mit den Bienchen und den Blümchen Sacher erklären muss, hat er hoffentlich hinter sich.
Zitat:
Prozedur mit Wert-Parametern (ohne VAR)

wie Luckie gesagt hat werden die Variablen an die Prozedur übergeben und innerhalb dieser weiterverarbeitet. Außerhalb der Prozedur hat das keinerlei Auswirkungen. Deshalb siehst Du auch nichts von dem Vertauschen.
Sie werden eben kopiert, warum nennst du das Kind nicht beim Namen?
Zitat:
Prozedur mit VAR-Parametern

genau wie vorher. ABER !!! Die innerhalb der Prozedur geänderten Parameter werden wieder an das aufrufende Programm zurück geliefert.
Und das ist eben nicht richtig. Es wird nichts zurückgeliefert. Es mag zwar so aussehen, aber es ist schlicht und ergreifend falsch. Eine Funktion liefert ein Ergebnis zurück, das wäre richtig. Was hier passiert könnte man am ehesten noch so umschreiben: Es wird an einer Stelle etwas geändert, auf das die Subroutine und die aufrufende Routine gleichermaßen Zugriff haben - eben die Adresse im Speicher.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat