pointer
Ich setze bei diesem Tutorial voraus, dass jeder Leser wissen wie man in c Variablen anlegt.
Wie ihr wahrscheinlich schon bemerkt habt, kann man an eine Funktion übergebene Variablen nicht so ändern dass diese Änderung im Hauptprogramm wirksam wird.
Desshalb gibt es Pointer. Da alle Variablen im Speicher (RAM) eindeutig ansprechbar sind, werden sie mit einer Adresse versehen. Diese sagt eindeutig aus wo sich diese befinden. Wenn man aber Variablen an eine Funktion übergibt, merkt sich das Programm die Adresse nicht sondern nur den Inhalt. Daran setzen Pointer an. Der Inhalt von Pointern ist nicht ein Wert sondern die Adresse einer anderen Variable.
Wie declariere ich einen Pointer: die declaraition eines Pointers unterscheidet sich nut sehr geringfügig von der einer normalen Variable. (int a=20). Bei Einem Pointer lautet sie:
int *a (beachte stern). Im programm muss dem Pointer erst einmal die Adresse einet anderen Variable zugewiesen werden. Da sich die Adressen aber erst beim Starten des Programms ergeben wird statt der Adresse &variablenname geschrieben (Beachte UND zeichen). Das Dollarzeichen tut nichts anderes als die Aktuelle Adresse der Variable herauszufinden
Das heißt wir sind schon so weit:
int *pointer; //Pointer deklarieren
p=&variablenname //Adresse zuweisen.
Wie kann man jetzt den wert auf den der Pointer zeigt ändern?
ganz einfach:
*pointer=>neuer wert> //Wert zuweisen
Wie ihr einen Pointer an eine Funtktion übergebt, sag ich euch das nächste mal