001
19.08.2003, 00:25 Uhr
Pablo
Supertux (Operator)
|
Ein Pointer ist eine Variable, die auf eine andere Variable zeigt. Sie speichert tatsächlich die Adresse vom RAM, wo die zweite Variable gespeichert wird.
Um einen Pointer zu deklarieren, musst du das Zeichen * vor dem Namen der Variable setzen. Um den Pointer zu initialisieren brauchst du einen anderen Pointer oder eine Referenz, besser gesagt, die Adresse eine andere Variable. Bsp:
C++: |
int i=6; int* pointer1_auf_i = &i; // & gibt die Adresse von i zurück int* pointer2_auf_i =pointer1_auf_i; // Initialisierung mit einen anderen Pointer
|
Sei XYZ eine Struct. In diesem Fall funktioniert gleich.
C++: |
XYZ var; // var wird initialisiert XYZ* pointer_auf_var = &var;
|
Um auf die Members (ich meine vom Pointer) zugreifen zu können, musst du nicht Punkt "." benutzen, sondern Pfeil "->".
Sei folgende Funktion eine Funktion, die XYZ als Pointer übernimmt:
C++: |
void funktion_tut_irgenwas(XYZ* xyz_pointer) // Parameter ist pointer { xyz_pointer->memeber1=1; // falls memeber1 ein int ist // usw }
|
Es gibt zwei Wege:
Weg 1:
C++: |
void f1() { XYZ var; // hier wird var initialisiert. // jetzt wird funktion_tut_irgenwas(XYZ*) aufgerufen funktion_tut_irgenwas(&var); // als Referenz, oder besser gesagt, die Adresse von var }
|
Weg 2:
C++: |
void f2() { XYZ var; // hier wird var initialisiert. // jetzt wird funktion_tut_irgenwas(XYZ*) aufgerufen XYZ* temp = &var; funktion_tut_irgendwas(temp); }
|
Ich mag persönlich die erste Lösung. Ich hoffe, dass ich deine Frage beantwortet hab und dass ich keinen Mist erzählt hab. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 19.08.2003 um 00:50 Uhr von Pablo Yanez Trujillo editiert. |