Hallo,
ich habe etwas Schwierigkeiten nachzuvollziehen, warum
int (*b)[12] ein Zeiger auf ein Array von 12 ints
und
int *b [12] ein Array von 12 Zeigern auf int
ist.
Kann mir jemand sagen, wie man die Klammersetzung vernünftig
interpretiert, um zu diesem Ergebnis zu kommen?
Denk dir einfach, dass der ‚*‘ zum Typen dazu gehört, was oBdA eigentlich auch der Fall ist. (ich schreibe den Stern immer direkt nach dem Typ, außer ich werde wie im ersten Beispiel oben dazu gezwungen,es anders zu machen)
int - typ integer
int* - typ zeiger auf integer
int& - referenz auf int
int*& - referenz auf zeiger auf int (weil ja int* der typ ist)
Aufgrund zur Abwärtskompatibilität zu C ist das leider nicht immer so konsequent umgesetzt.
analog:
int ia[12] - array aus ints
int* ia[12] - array aus zeiger auf int
int (*ia)[12] - zeiger auf array aus 12 int, wobei ich in diesem Fall
int** ia;
vorziehen würde.
Grüße,
Maxim