Benutzer:Havaniceday/Arrays und Zeiger
aus Wikipedia, der freien Enzyklopädie
Hinweis: Du darfst diese Seite editieren!
Ja, wirklich. Es ist schön, wenn jemand vorbeikommt und Fehler oder Links korrigiert und diese Seite verbessert. Sollten deine Änderungen aber der innehabenden Person dieser Benutzerseite nicht gefallen, sei bitte nicht traurig oder verärgert, wenn sie rückgängig gemacht werden.
Wikipedia ist ein Wiki, sei mutig!
Wikipedia ist ein Wiki, sei mutig!
Einleitung
Zeiger zeigen auf Speicheradressen. Der Typ bestimmt, wie wie viele benachbarte Speicherfelder benötigt werden um ein Objekt dieses Typs zu speichern. Wenn ein Zeiger inkrementiert wird, verschiebt sich seine gespeicherte Addresse um so viele Felder wie sein Elementtyp Speicherplatz verbraucht.
Beispiel:
short arr[] = { 0xCAFE, 0xBABE }; // 2-elementiges Array
short *parr = arr; // Das Gleiche wie short *parr = &arr[0]
Adresse | Inhalt -----------|-------- 0x9FF34233 | 0xFE arr[0] Anfang 0x9FF34234 | 0xCA 0x9FF35235 | 0xBE arr[1] Anfang 0x9FF35236 | 0xBA ... 0xA21B3185 | 0x33 parr enthaelt die Addresse von arr[0] 0xA21B3186 | 0x42 0xA21B3187 | 0xF3 0xA21B3188 | 0x9F Ende parr
Wenn 'parr' mittels '++parr' inkrementiert wird, verschiebt sich seine gespeicherte Addresse hier um zwei Werte, da, - in diesem Beispiel -, ein short-Element zwei Byte in Anspruch nimmt (hier von 0x9ff34233 auf 0x9ff34235).
Initialisation
int ai[] = { 3,5,7,9,2,4 }; // Sechs int langes Array.
int ai2[64] = { 2,3,5,8 }; // Die letzten 60 Elemente werden mit 0 initialisiert.
double ad[18] = {}; // Alle Elemente werden mit 0.0 initialisiert.
char ca[] = {'x','y','z'}; // Drei char langes Array, ohne abschliessendes '\0'.