AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Frage wegen Referenz variable in selbstgeschrieben funktione
Thema durchsuchen
Ansicht
Themen-Optionen

Frage wegen Referenz variable in selbstgeschrieben funktione

Ein Thema von Seikilos · begonnen am 3. Nov 2003 · letzter Beitrag vom 3. Nov 2003
Antwort Antwort
Seikilos

Registriert seit: 18. Mär 2003
71 Beiträge
 
#1

Frage wegen Referenz variable in selbstgeschrieben funktione

  Alt 3. Nov 2003, 17:30
An sich weiß ich es, hoff ich, aber ich will das noch mal geklärt haben.

Wo ist der unterschied bei den folgenden funktionen

Delphi-Quellcode:
function func1(VAR i:integer):integer;

und

function func1(i:integer):integer;
Noch nix mit Signatur
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Frage wegen Referenz variable in selbstgeschrieben funkt

  Alt 3. Nov 2003, 17:36
Ein var Parameter kann in der Routine verändert und wieder zurückgegeben werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Frage wegen Referenz variable in selbstgeschrieben funkt

  Alt 3. Nov 2003, 17:36
Wenn du var benutzst und die Variable in der Funktion geändert wird, wird die auch außerhalb der Funktion geändert.
Folgendermaßen:
Delphi-Quellcode:
procedure Proc1(i: Integer);
begin
  i := 5;
end;

var
  i: Integer;
begin
  i := 4;
  Proc(i);
  ShowMessage(InttoStr(i)); //Preisfrage: kommt hier 4 oder 5?
end;
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Frage wegen Referenz variable in selbstgeschrieben funkt

  Alt 3. Nov 2003, 17:38
Oder anders: Es wird nicht eien Kopie der Variable übergeben, sondern dessen Adresse im Speicher. In der Routine wird dann der Wert an dieser Adresse geändert, weshalb sich auch der Wert in der aufrufenden Routine ändert. Man spricht dabei entweder von "call by value" (eine Kopie des Wertes übergeben) oder "call by reference" (eine Referenz auf die Adresse übergeben).
Und was sagt Niklaus Wirth dazu:
Zitat:
Niklaus Wirth, der Schöpfer von Pascal, wurde einmal gefragt, wie man seinen Namen ausspreche. You can either call me by name, pronouncing it 'Veert', or call me by value, 'worth', antwortete er.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz