Der Martin: Stack und Heap

Beitrag lesen

Hi,

Objekte als "etwas Sinnvolles, das im Arbeitsspeicher liegt", sehe ich genauso.
Nur ausgerechnet Variablen passen da überhaupt nicht hin.

hmm, ja, doch, gewissermaßen.

Eine Variable ist eine "Hülle" (Container) für einen Wert (Objekt, Zeiger, Funktionszeiger, auch Instanzen von C-Strukturen würde ich als Objekt gelten lassen).

Eigentlich ist eine Variable nichts weiter als ein Name für einen Speicherplatz, und somit direkt mit einem Objekt (nach dem eben beschriebenen Verständnis) assoziiert. Daher würde ich auch die vereinfachte Aussage, eine Variable sei ein Objekt, durchaus gelten lassen.
Eine Variable existiert darüber hinaus nur im Quellcode, und hier ist sie außer mit einer Speicheradresse auch noch mit Metainformationen über ihren Typ, Scope usw. verknüpft; in einem lauffähig übersetzten Programm (z.B. C oder Assembler) gibt es keine Variablen mehr, denn hier sind alle Speicherbezüge aufgelöst.

Eine Variable kann verschiedene Werte annehmen

Genauer: Der Speicherplatz, mit dem eine Variable assoziiert ist, kann verschiedene Werte enthalten.

Sie ist ein Platzhalter im Code und kein Wert im Arbeitsspeicher.

Ich würde wegen der direkten Beziehung beides durchgehen lassen und daher auch die Aussage "eine Variable ist auch ein Objekt" hinnehmen.

Ciao,
 Martin

--
Zwei Freundinnen tratschen: "Du, stell dir vor, die Petra kriegt ein Kind!" - "Ich kann mir schon denken, von wem." - "Dann ruf sie mal schnell an, das würde ihr bestimmt weiterhelfen."
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(