02_pointer_handout_Z Flashcards
Was ist ein Zeiger (Pointer) in der Programmierung?
Ein Zeiger ist ein spezieller Wert, der die Speicheradresse eines anderen Werts darstellt. Zeiger können verwendet werden, um auf Daten im Speicher zuzugreifen und diese zu manipulieren.
Welche Größe haben Zeiger auf 32-bit und 64-bit Systemen?
Auf 32-bit Systemen sind Zeiger 32 Bit (4 Byte) groß, und auf 64-bit Systemen sind sie 64 Bit (8 Byte) groß.
Was ist der Unterschied zwischen typisierten und untypisierten Zeigern?
Typisierte Zeiger haben einen Datentyp, der angibt, wie groß der Speicherbereich ist, auf den der Zeiger zeigt. Untypisierte Zeiger haben keinen Datentyp und werden zur Verwaltung von beliebigem Speicher verwendet.
Wie deklariert man einen Zeiger in C?
Ein Zeiger wird deklariert mit Datentyp *zeigervariable;
Beispielsweise: int *a;
.
Was macht der Adressoperator (&
) in C?
Der Adressoperator &
gibt die Speicheradresse eines Objektes zurück.
Was macht der Dereferenzierungsoperator (*
) in C?
Der Dereferenzierungsoperator *
gibt den Wert zurück, auf den der Zeiger zeigt.
Was ist ein Nullpointer?
Ein Nullpointer ist ein Zeiger mit dem Wert 0, der auf nichts zeigt. Beispiel: int *a = NULL;
.
Was sind wilde Zeiger (wild pointers) und welche Probleme können sie verursachen?
Wilde Zeiger sind nicht initialisierte oder ungültige Zeiger. Sie können zu Programmfehlern führen, da sie auf unvorhersehbare Speicherbereiche zugreifen.
Was ist ein Array in der Programmierung?
Ein Array speichert Elemente desselben Datentyps in einer fixen Reihenfolge und hat eine fixe Größe.
Wie deklariert man ein Array in C?
Ein Array wird deklariert mit Datentyp arrayvariable[Größe];
Beispielsweise: int myarray[12];
.
Wie sind die Elemente eines Arrays im Speicher angeordnet?
Die Elemente eines Arrays liegen hintereinander im Speicher.
Wie greift man auf ein Array-Element mit dem Indexoperator zu?
Mit array[2]
greift man auf das dritte Element eines Arrays zu.
Wie greift man auf ein Array-Element mit Pointerarithmetik zu?
Mit *(array + 2)
greift man auf das dritte Element eines Arrays zu.
Was ist Pointerarithmetik?
Pointerarithmetik umfasst die Addition oder Subtraktion von Zahlen zu oder von einem Zeiger, um auf verschiedene Speicheradressen zuzugreifen.
Wie iteriert man über ein Array mit dem Indexoperator in C?
Beispiel: for (int i = 0; i < 5; i++) { printf("%d\n", a[i]); }