www.vorkurse.de
Ein Projekt von vorhilfe.de
Die Online-Kurse der Vorhilfe

E-Learning leicht gemacht.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Forenbaum
^ Forenbaum
Status Mathe-Vorkurse
  Status Organisatorisches
  Status Schule
    Status Wiederholung Algebra
    Status Einführung Analysis
    Status Einführung Analytisc
    Status VK 21: Mathematik 6.
    Status VK 37: Kurvendiskussionen
    Status VK Abivorbereitungen
  Status Universität
    Status Lerngruppe LinAlg
    Status VK 13 Analysis I FH
    Status Algebra 2006
    Status VK 22: Algebra 2007
    Status GruMiHH 06
    Status VK 58: Algebra 1
    Status VK 59: Lineare Algebra
    Status VK 60: Analysis
    Status Wahrscheinlichkeitst

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Algorithmen und Datenstrukturen" - Zeiger
Zeiger < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Zeiger: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:19 Do 21.08.2008
Autor: tynia

Also meine Frage ist ganz allgemein.
Kann mir vielleicht jemand in einfachen Worten erklären, was Zeiger eigentlich machen und wozu man sie braucht? Ich versteh das irgendwie nicht richtig.

Ich weiß, dass ein Zeiger eine Variable ist, die die Adresse speichert, an der ein Objekt im Speicher steht.
Dadurch, daß dem Zeiger die Adresse bekannt ist, zeigt er quasi auf dieses Objekt, woher
auch der Name kommt.

Aber wozu denn der Zeiger? Kann man nicht direkt die Variable aufrufen?

Hoffe mir kann da jemand weiterhelfen. Danke schonmal

        
Bezug
Zeiger: Antwort
Status: (Antwort) fertig Status 
Datum: 14:38 Do 21.08.2008
Autor: Arralune

Nehmen wir ein Beispiel: Du arbeitest mit einem Kommilitonen an an einem Übungsblatt. Zuerst schreibst du ein paar Zeilen, danach soll dein Kommilitone weiter schreiben, dann übernimmst du den Feinschliff. Du hast nun mehrere Möglichkeiten, die Übergabe deiner bisherigen Arbeit an deinen Kommilitonen zu gestalten: Entweder du kopierst deine Arbeit und übergibst sie deinem Kommilitonen, der wenn er fertig ist seinen Teil wieder kopiert und dir zurückgibt, wo du dann alles zusammenbastelst.
Oder aber du gibst deinen Kommilitonen einfach den Zettel wo das drauf steht, was du bisher erarbeitet hast und er gibt dir nachdem er fertig ist und seinen Teil auf diesem Zettel geschrieben hat genau diesen Zettel wieder zurück.
Anstatt deinem Kommilitonen den Zettel direkt zu geben, kannst du ihn natürlich auch in ein Schließfach sperren und den Schlüssel übergeben.
Die erste Variante entspricht der Übergabe einer normalen Variablen, deren Inhalt (zumindest in C und ähnlichen Sprachen) bei Übergabe immer kopiert wird. Die dritte Variante entspricht einem Zeiger. Der Vorteil hier liegt auf der Hand: Es muss nichts kopiert werden, also spart man sich die Kopiergebühren bzw den Platz im Arbeitsspeicher bei einem Programm. Aber auch sonst hast einige Unterschiede, zum Beispiel bearbeitest dein Freund den Zettel (das Objekt) an sich und es gibt hinterher keine Arbeit beim Zusammenfügen.

Einen Nachteil kann man aber auch schon erahnen: Niemand garantiert, dass im Schließfach nacher auch wirklich immer nur ein Zettel liegt und nicht irgendetwas anderes. Viele Programmabstürze sind darauf zurückzuführen, dass jemand eine Funktion auf eine Speicherstelle verweist und sich dort völlig andere Dinge befinden, als die Funktion erwartet hatte.

In einem Programm ist ein solches Verhalten immer nützlich, wenn das Kopieren eines Objektes keinen Sinn ergibt. Stell dir zum Beispiel eine graphische Benutzeroberfläche vor, auf der ein Knopf prangt. Du möchtest nun eine Funktion schreiben, die genau diesen Knopf eine neue Beschriftung verpasst. Wenn du nun den Knopf direkt übergibst, wird C diesen Knopf kopieren und deine Funktion bearbeitet einen völlig anderen Knopf, der nirgendwo zu sehen ist. Wenn du stattdessen einen Zeiger übergibst, so kann die Funktion auf genau den einen Knopf zugreifen und seine Beschreibung verändern.


Bezug
                
Bezug
Zeiger: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 19:06 Fr 22.08.2008
Autor: tynia

Danke ;-) Genau so eine Erklärung meinte ich

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorkurse.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]