Grundlegendes zu Pointern

Deklaration und Definition eines Pointers (2/2)

Schwierigkeiten bereitet oft die Deklaration von Pointern auf ein Array bzw. eines Arrays aus Pointern. Hier ist die Rangfolge der Operatoren zu beachten. Der Indexoperator [] hat eine höhere Präferenz als der Dereferenzierungsoperator *.

int* p;            // Pointer aus integer
int a[3];          // Array aus integer
int* a[3];         // Array aus integer-Pointern
int (*a)[3];       // Pointer auf Array aus integer
int* (a[3]);       // Array aus integer-Pointern

oder völlig abgefahren

int*  (*a)[3]     // Pointer auf Array aus integer-Pointern
int*  *a[3];      // entspricht int** a[3]: Array von Zeigern auf Integerzeiger