Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

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

  Alt 9. Nov 2003, 10:13
Hi!

Ich schreibe am Dienstag eine Informatik-Klausur.
Wir hatten da unter anderem eine procedure, die 2 Integer-Zahlen vertauscht:
Delphi-Quellcode:
procedure TForm1.Swap(var Zahl1,Zahl2: integer);
var h: integer; //Hilfsvariable
begin
  h:=Zahl1;
  Zahl1:=Zahl2;
  Zahl2:=h;
end;
Ich verstehe aber trotzdem nicht so genau, für was man das "var" braucht, denn ich weise doch mit

Delphi-Quellcode:
h:=Zahl1;
Zahl1:=Zahl2;
Zahl2:=h;
eindeutig die Werte den entsprechenden Variablen zu.

Lasse ich jedoch das "var" weg:

Delphi-Quellcode:
procedure TForm1.Swap(Zahl1,Zahl2: integer);
var h: integer; //Hilfsvariable
begin
  h:=Zahl1;
  Zahl1:=Zahl2;
  Zahl2:=h;
end;
Dann geht es nicht, also die Zahlen werden nicht vertauscht.

Mit dem "var" wird ja die Speicheradresse übergeben (Referenzparameter).
Ohne das "var" nur die Kopie der Variablen (Werteparameter)
==> soviel hab ich noch verstanden )

Aber durch die Zuweisung müsste es doch auch ohne "var" gehen.
Oder gilt die Vertauschung so nur innerhalb der Procedure?

Ich hoffe, mir kann das jemand verständlich erklären.
  Mit Zitat antworten Zitat