Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions Variable (Programmierung) - Wikipedia

Variable (Programmierung)

aus Wikipedia, der freien Enzyklopädie

In der Programmierung ist eine Variable ein Name für einen Speicherbereich in einem Computerprogramm, der verschiedene Werte annehmen kann. Technisch gesehen bezeichnet eine Variable einen Speicherbereich des Computers, in dem Werte gespeichert werden können. Dieser Speicherbereich wird mit dem Variablennamen angesprochen.

Inhaltsverzeichnis

[Bearbeiten] Warum benötigt man Variablen in einem Computerprogramm?

Variablen werden in der Programmierung dazu verwendet, den Quelltext lesbar zu halten sowie häufig gebrauchte Standardgrößen (Datentypen) von Speicherbereichen schnell und einfach nutzbar zu machen und zu ändern.

[Bearbeiten] Speicher anfordern ohne Variablen

Der Computer verwaltet seinen Speicher anhand von numerischen Adressen. Dies geschieht meist in Blöcken in der Größe eines Bytes, wobei jedem Byte eine eindeutige Adresse zugeordnet ist. Müssen im Ablauf eines Computerprogramms Daten zur Verarbeitung im Speicher abgelegt werden, so müsste der Programmierer folgende Schritte durchführen:

  1. Bestimmen der binären Größe der Daten (Anzahl der Bytes)
  2. Anfordern eines freien Speicherbereiches in dieser Größe (beim Betriebssystem)
  3. Reservieren dieses Speicherbereiches für das Programm (Sperrung für andere Programme) (Betriebssystem)
  4. Anfordern der numerischen Adressen vom Beginn bis zum Ende des Speicherbereichs (vom Betriebssystem)
  5. Einfügen der Daten in diesen Speicherbereich (durch das Betriebssystem)
  6. Merken der numerischen Speicheradressen
  7. Freigeben des Speicherbereiches, wenn er nicht mehr gebraucht wird

Man hat nun einen Speicherbereich des Computers reserviert, den man anhand der numerischen Adresse auslesen, beschreiben und wieder für andere Zwecke freigeben kann.

[Bearbeiten] Speicher anfordern mit Variablendeklaration

Beim Erstellen einer Variablen (Deklarieren) im Programm nimmt der Compiler oder Interpreter dem Programmierer viele Arbeitsschritte ab. Es müssen vom Programmierer nur noch folgende Schritte durchgeführt werden.

  1. Bestimmen der binären Größe der Daten (Byte-Anzahl).
  2. Auswählen und Erstellen einer geeigneten Variablen (Deklarieren) durch Vergeben eines beliebigen Namens
  3. Merken des vergebenen Namens

Die Speicherverwaltung wird dem Programmierer vom Compiler abgenommen. Neben dem geringeren Aufwand kann man nun auch mit einem Namen arbeiten, anstatt sich eine Zahl merken zu müssen.

[Bearbeiten] Typen von Variablen

Hauptartikel: Datentyp

In vielen Programmiersprachen muss der Programmierer beim Anlegen einer Variable angeben, welche Art von Informationen (Zahlen, Buchstaben, ...) er in dieser speichern möchte. Der Typ einer Variablen legt auch meist die Größe des benötigten Speicherbereiches für die Variable fest. Dazu weist der Programmierer der Variablen einen Datentyp zu. Auf diese Weise wird die Verwendungsmöglichkeit der Variablen eingeschränkt, was es ermöglicht zu garantieren, dass eine bestimmte Operation mit dem gegenwärtigen Inhalt dieser Variablen auch durchgeführt werden kann. In der Praxis kommt meist noch ein Nullwert hinzu, der diese erwünschte Beschränkung etwas aufweicht.

Folgende Variablentypen findet man in fast jeder Programmiersprache:

[Bearbeiten] Initialisierung

Variablen sollten vor ihrer Benutzung initialisiert werden. Das heißt, sie bekommen beim Erstellen einen definierten Wert zugewiesen. Dies kann durch das Laufzeitsystem der verwendeten Programmiersprache geschehen oder durch explizite Zuweisung eines Wertes an die Variable.

Bei Programmiersprachen, die nicht automatisch alle verwendeten Variablen initialisieren, sind uninitialisierte Variablen eine Quelle für schwer zu findende Fehler: Da die Variable ohne Initialisierung einen zufälligen Wert enthält, wird auch das Verhalten des Programms unvorhersagbar, so dass es manchmal falsche Ergebnisse liefert oder gar abstürzt. Solch ein Fehler ist beim Testen teilweise nur sehr schwer zu entdecken. Enthält der für die Variable reservierte Speicherbereich einen scheinbar erwarteten Inhalt aus einem vorhergehenden Programmdurchlauf, so spricht man auch von einer Speicherinterferenz.

[Bearbeiten] Beispiel

  • Deklaration einer Variablen
  • danach Initialisierung
  • Deklaration und Initialisierung zusammen (besser)
Dim intWert as Integer
intWert = 5
Dim intTest = 5 as Integer

[Bearbeiten] Gültigkeitsbereich von Variablen (Scope)

Unter dem Gültigkeitsbereich einer Variablen versteht man den Programmabschnitt, für den die Variable nutzbar und sichtbar ist.

Ist eine Variable im gesamten Programm sichtbar, dann spricht man von einer globalen Variablen. Globale Variablen benötigen einen programmweit eindeutigen Namen.

Ist eine Variable innerhalb einer Funktion deklariert, und kann man im Programmtext außerhalb dieser Funktion nicht auf die Variable zugreifen, so spricht man von einer lokalen Variable. Da der Name einer lokalen Variable nur innerhalb der umschließenden Funktion sichtbar ist, kann in einer anderen Funktion eine Variable gleichen Namens verwendet werden, ohne dass es zu einem Namenskonflikt kommt.

Verschiedene Gültigkeitsbereiche von Variablen

[Bearbeiten] Lokal versus Global

Globale Variablen sind bequem, weil sie im ganzen Programm sichtbar sind. Es ist nicht notwendig, sie beim Aufruf einer Funktion als Parameter zu übergeben. Sie werden aber auch leicht zur Fehlerquelle, wenn man zum Beispiel eine globale Variable für verschiedene Zwecke benutzt. Auch kann es passieren, dass man eine lokale Variable mit dem Namen der globalen Variablen verwendet, von dem man annimmt, dass er im Programm bisher noch nicht benutzt wurde. Wenn es diesen Namen aber doch schon als Variable mit passendem Typ gab, dann wird deren Wert unkontrolliert überschrieben und umgekehrt. Ein schwer zu findender Fehler ist oft die Folge. Erfahrene Entwickler verwenden globale Variablen ausschließlich dann, wenn es sich nicht vermeiden lässt.

[Bearbeiten] Lebensdauer von Variablen

Unter der Lebensdauer einer Variablen versteht man den Zeitraum, in dem die Variable Speicherplatz reserviert hat. Wird der Speicherplatz für andere Zwecke wieder freigegeben, so „stirbt“ die Variable und ist nicht mehr nutzbar.

Lokale Variablen werden bei jedem Aufruf der Funktion erstellt, viele Sprachen geben den Speicherplatz beim Verlassen der Funktion wieder frei. Globale Variablen existieren dagegen im Allgemeinen von Programmstart bis Programmende, und sie sind in jedem Programmteil nutzbar.

In C-ähnlichen Programmiersprachen gibt es einen Zusatz bei der Deklaration, beispielsweise static benannt, der nur die Sichtbarkeit einer Variablen auf den Namensraum der Funktion einschränkt, nicht aber ihre Lebensdauer. Die Sichtbarkeit einer solchen Variablen verhält sich also wie die einer lokalen Variablen, die Lebensdauer dagegen wie die einer globalen, das heißt, beim Eintritt in die sie umschließende Funktion hat sie exakt den selben Wert wie am Ende des letzten Aufrufs der Funktion.

[Bearbeiten] Variablen als Parameter oder Returnwert

Variablen können wie ein Staffelstab beim Staffellauf von einer Funktion an eine andere weitergegeben werden. Die Funktion wird mit sogenannten „Parametern“ deklariert. Beim Aufruf werden ihr dann Werte oder Referenzen darauf, „Argumente“ genannt, übergeben. Ein in der Funktion errechnetes Resultat wird als so genannter „Returnwert“, an den Aufrufer zurückgegeben und dort beispielsweise einer Variablen zugewiesen.

[Bearbeiten] Weblinks

[Bearbeiten] Siehe auch

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu