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.