Arrays als Referenz übergeben: Syntax und Funktionalität verstehen
Betrachten Sie den folgenden Funktionsprototyp:
void foo(int (&myArray)[100]);
Dies Die Funktion akzeptiert ein Array mit 100 Ganzzahlen als Referenzparameter. Allerdings mag die Syntax „&myArray[100]“ auf den ersten Blick verwirrend erscheinen. Hier ist eine detaillierte Aufschlüsselung seiner Bedeutung:
Zur weiteren Verdeutlichung: Die folgenden Funktionsprototypen sind gleichwertig und akzeptieren ein Array beliebiger Größe als Referenz Parameter:
void foo(int * x); void foo(int x[100]); void foo(int x[]);
In diesen Prototypen gibt das Sternchen () einen Zeiger auf das erste Element des Arrays an. Der Compiler behandelt alle diese Prototypen so, als würden sie einen int -Parameter annehmen.
Bei Verwendung der Referenzsyntax:
void foo(int (&x)[100]);
akzeptiert die Funktion jedoch nur Arrays mit genau 100 Ganzzahlen. Dies bedeutet, dass Sie sizeof(x) sicher verwenden können, um die Größe des Arrays innerhalb der Funktion zu bestimmen.
Andererseits ist die folgende Syntax ungültig:
void foo(int & x[100]);
Diese Syntax wird als „ein Array von Referenzen“ geparst, was in C keine rechtliche Deklaration ist.
Das obige ist der detaillierte Inhalt vonWie geht C mit Array-Referenzen um: Ein tiefer Einblick in Syntax und Funktionalität?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!