Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zeiger Pointer

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
15.01.2004, 16:22 Uhr
~Bronstein
Gast


Zu was benötige ich eigentlich Zeiger
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.01.2004, 16:23 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


in einem zeiger kannst du die adress von einer variablen oder die adresse eines anderen zeigers speichern...
an sonten ist deine frage ein bisschen allgemein... Frag mal konkreter was du wissen willst...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.01.2004, 16:30 Uhr
~Bronstein
Gast



Zitat:
~Bronstein postete
Zu was benötige ich eigentlich Zeiger

Ich muss ganz allgemen wissen wofür ich einen Zeiger benötige. Das ist ein Punkt in meiner Projektarbeit (Verwendungen von Zeiger(Wo werden sie angewandt)).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.01.2004, 16:34 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Die Frage ist so allgemein das man sie entweder super kurz beantwortet (Die zeigen auf was...) oder man schreibt einen 50 Seiten Roman darüber was man damit alles machen kann...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.01.2004, 16:55 Uhr
virtual
Sexiest Bit alive
(Operator)


Probieren wirs mal kurz:
Alles, was in einem Programm so kreucht und fleucht, also Variablen und Funktionen, liegen irgendwo im Speicher. Eine Variable zB liegt also an einem bestimmten Ort im Speicher. WEnn man sich den Speicher als eine gaaaanz lange aneinanderreigung von lauter Bytes vorstellt, dann kann man sie durchnummerieren, von 0 bis sonstwo (soviel Speicher Dein rechner eben hat). Diese Nummer nennt man "Speicheradresse". Ein Zeiger ist etwas, was eine Speicheradresse aufnehmen kann.

Wenn ich in C eine Variable deklariere, dann sieht das so aus:

C++:
int x = 4711;


Damit dage ich x sei ein Speicherbereich, in dem ich den Wert 4711 reintue. Jedesmal wenn ich x erwähnt, geht das Programm dann intern hin und liest/schreibt diesen Speicherbereich. Nun kann es manchmal sinnvoll sein, zu wissen, wo denn dieser Speicherbereich zu finden ist, also was seine Adresse ist. Dann definiert man einen Zeiger:

C++:
int x = 4711;
int* zeiger_auf_x = &x;



Nun zur Anwendung:
In C wird generell Call-By-Value gemacht, dh wenn ich eine Funktion aufrufe, dann werden von den parametern kopien angefertigt:

C++:
void f(int x)
{
    x++;
}

int main()
{
    int y = 1;
    f(y);
// y ist weiterhin 1
}


In obigen Beispiel wird y an f übergeben. Allerdings wird nur eine Kopie übergeben, wodurch y auch nach dem Funktionsaufruf 1 ist (und nicht 2, wenn wir Call by Reference hätten).
Nun kann man aber manchmal eben daran interessiert sein, einen CallByReference zu machen und genau das wird mit Zeigern gemacht: man sagt f, wo es den Wert findet und f ist dann in der Lage über die Adresse auf den Speicher zuzugreifen:

C++:
void f(int* x)
{
    (*x)++;
}

int main()
{
    int y = 1;
    int* zeiger_auf_y = &y
    f(zeiger_auf_y);
// y ist nun 2
}


Leider ist die Notation etwas umständlicher als zuvor: aber nun wird an f eine Adresse übergeben. f geht hin und "dereferenziert" die Adresse und erhöht das, wohin gezeigt wird um 1. Daher bleibt die Änderung auch in main sichtbar.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 15.01.2004 um 17:01 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.01.2004, 16:58 Uhr
~Bronstein
Gast


Wofür ist es gut die Speicheradresse zu wissen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.01.2004, 16:59 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@virtual
Und hast du den 50 Seiten-Roman schon vorbereitet...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
15.01.2004, 16:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


dann kann man z.b an weitere funktionen eben nur diese speicheradresse weitergeben und den inhalt des speichers nutzen, ohne neuen speicher anfordern zu müssen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
15.01.2004, 17:02 Uhr
virtual
Sexiest Bit alive
(Operator)


Hich habe noch was drangehängt, sie post oben
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
15.01.2004, 19:45 Uhr
~Bronstein
Gast


Wie kann man die Speicheradresse um eine int Zahl erhöhen. Bitte mit kurzem Beispiel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: