2016-07-06 9 views
0

Gehen Sie hier: http://cdecl.org/cdecl Klärung erforderlich: Was ist ein "Array 5?"

Eingang:

char (*arr)[5] 

Ausgang:

declare arr als Zeiger auf Array 5 von char

Was ist ein "Array 5"? Bedeutet das einfach ein Array mit 5 Elementen?

+0

Ja, es tut. Was macht dich unbehaglich? Die Tatsache, dass Arrays in Zeiger zerfallen können? –

+1

@ jnbrq-CanberkSönmez Ein Array kann implizit in einen Zeiger umgewandelt werden, der auf das erste Element zeigt. Dieser "Zerfall" ist jedoch kein Zeiger auf ein Array. Was das OP hat ist ein tatsächlicher Zeiger auf ein Array –

+0

keine Beschwerden, nur Klärung benötigt –

Antwort

1

Es ist ein Zeiger auf ein Array von 5 Elementen.

Zeiger und Verweise auf Arrays sind nützlich, um Arrays an Funktionen zu übergeben und sie zurückzugeben. Geben Sie keine lokalen nicht statischen Arrays zurück, da ihre Lebensdauer bei der Rückkehr endet.

Um ein Array verweisen Sie auf diese Erklärung verwenden können: char (&arr)[5] = array;

+0

Ich kann Ihre Antwort anscheinend nicht länger als 10 Minuten akzeptieren. Ich muss anderen Menschen eine Chance geben. –