02_pointer_handout_Z Flashcards

1
Q

Was ist ein Zeiger (Pointer) in der Programmierung?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche Größe haben Zeiger auf 32-bit und 64-bit Systemen?

A

Auf 32-bit Systemen sind Zeiger 32 Bit (4 Byte) groß, und auf 64-bit Systemen sind sie 64 Bit (8 Byte) groß.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist der Unterschied zwischen typisierten und untypisierten Zeigern?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie deklariert man einen Zeiger in C?

A

Ein Zeiger wird deklariert mit Datentyp *zeigervariable; Beispielsweise: int *a;.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was macht der Adressoperator (&) in C?

A

Der Adressoperator & gibt die Speicheradresse eines Objektes zurück.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was macht der Dereferenzierungsoperator (*) in C?

A

Der Dereferenzierungsoperator * gibt den Wert zurück, auf den der Zeiger zeigt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist ein Nullpointer?

A

Ein Nullpointer ist ein Zeiger mit dem Wert 0, der auf nichts zeigt. Beispiel: int *a = NULL;.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was sind wilde Zeiger (wild pointers) und welche Probleme können sie verursachen?

A

Wilde Zeiger sind nicht initialisierte oder ungültige Zeiger. Sie können zu Programmfehlern führen, da sie auf unvorhersehbare Speicherbereiche zugreifen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist ein Array in der Programmierung?

A

Ein Array speichert Elemente desselben Datentyps in einer fixen Reihenfolge und hat eine fixe Größe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie deklariert man ein Array in C?

A

Ein Array wird deklariert mit Datentyp arrayvariable[Größe]; Beispielsweise: int myarray[12];.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie sind die Elemente eines Arrays im Speicher angeordnet?

A

Die Elemente eines Arrays liegen hintereinander im Speicher.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie greift man auf ein Array-Element mit dem Indexoperator zu?

A

Mit array[2] greift man auf das dritte Element eines Arrays zu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wie greift man auf ein Array-Element mit Pointerarithmetik zu?

A

Mit *(array + 2) greift man auf das dritte Element eines Arrays zu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist Pointerarithmetik?

A

Pointerarithmetik umfasst die Addition oder Subtraktion von Zahlen zu oder von einem Zeiger, um auf verschiedene Speicheradressen zuzugreifen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie iteriert man über ein Array mit dem Indexoperator in C?

A

Beispiel: for (int i = 0; i < 5; i++) { printf("%d\n", a[i]); }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie iteriert man über ein Array mit Pointerarithmetik in C?

A

Beispiel:
for (int *e = a; e < a + 5; e++)
{ printf(“%d\n”, *e); }`

17
Q

Warum muss man bei Arrays auf den Index achten?

A

Der Index wird nicht auf Gültigkeit überprüft, was zu Buffer Overflows führen kann.

18
Q

Wie werden Arrays als Eingabeparameter in Funktionen übergeben?

A

Arrays werden mittels Call-by-Reference übergeben, das bedeutet, dass die Speicheradresse des ersten Elements übergeben wird.

19
Q

Was ist eine Zeichenkette (String) in C?

A

Eine Zeichenkette ist ein Array aus Zeichen (char), das null-terminiert ist, d.h., das letzte Zeichen ist '\0'.

20
Q

Wie vergleicht man Zeichenketten in C?

A

Zeichenketten werden mit der Funktion strcmp() verglichen, nicht mit ==.

21
Q

Wie kopiert man Zeichenketten in C?

A

Mit der Funktion strcpy oder memcpy.

22
Q

Was sind Kommandozeilenargumente in C und wie werden sie in der main-Funktion übergeben?

A

Kommandozeilenargumente sind Eingaben, die beim Starten eines Programms über die Kommandozeile übergeben werden. Sie werden in der main-Funktion als int main(int argc, char *argv[]) übergeben, wobei argv ein Array von Zeichenketten ist und argc die Größe dieses Arrays angibt.