Frage von Sebbo92, 63

C++ int* | int** - Unterschied?

Hallo zusammen,

momentan bin ich am C++ programmieren und wollte euch fragen, was der unterschied zwischen int* und int**. Die Frage stammt aus einer Klausuraufgabe:

Welchen Typ habe die Ausdrücke:

1) *b

2) &b

Die Antworten: (vom Dozenten)

1) Unsinn

3) int**

Vielleicht könnt ihr mir ja den Unterschied der beiden Typen erklären. Vielen Dank für euerer Hilfe :)

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von NoHumanBeing, 47

int* ist ein Pointer auf einen Integer. int** ist ein Pointer auf einen Pointer auf einen Integer.

* ist der Dereferenzierungsoperator ("löst den Pointer auf", greift auf das zu, auf das er zeigt), & der Referenzierungsoperator (erstellt einen Pointer auf sein "Argument").

Wenn b vom Typ int ist, dann ist *b Unsinn und &b vom Typ int*.

Wenn b vom Typ int* ist, dann ist *b vom Typ int und &b vom Typ int**.

Wenn b vom Typ int** ist, dann ist *b vom Typ int* und &b vom Typ int***.

Kommentar von NoHumanBeing ,

Vielen Dank für den Stern! :-)

Antwort
von ichweisnix, 28

Welchen Typ habe die Ausdrücke:

Welchen Typ habe die Ausdrücke:

1) *b
2) &b

Das hängt vom Typ von b ab. Bei den eingebauten Typen ist * die Dereferenzierung und & der Addressoperator, also quasi das Gegenteil. Sprich für die eingebauten Typen gilt *(&b) ist b.

Der Unterschied zwischen int * und int ** ist der, das int * ein Zeiger auf einen int ist, wohingegen int ** ein Zeiger auf einen Zeiger auf int ist.

Keine passende Antwort gefunden?

Fragen Sie die Community