Heim >Backend-Entwicklung >C++ >Wie übergebe ich ein Array als Referenz in C?

Wie übergebe ich ein Array als Referenz in C?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-21 07:02:10215Durchsuche

How Do I Pass an Array by Reference in C  ?

Ein Array als Referenz übergeben

Bei der Übergabe eines Arrays an eine Funktion ist es wichtig zu überlegen, ob Sie das Array als Wert übergeben möchten oder durch Verweis. Die Übergabe als Wert erstellt eine Kopie des Arrays, während die Übergabe als Referenz es der Funktion ermöglicht, das ursprüngliche Array zu ändern.

Übergabe eines Arrays per Referenzsyntax

Um ein zu übergeben Array als Referenz verwenden wir die folgende Syntax:

void foo(int (&myArray)[100]);

In dieser Syntax ist myArray eine Referenz auf ein Array von 100 Ganzzahlen. Dies bedeutet, dass alle an myArray innerhalb der foo()-Funktion vorgenommenen Änderungen im ursprünglichen Array widergespiegelt werden.

Getrennte Klammern und große Klammern

Die einzelnen Klammern gefolgt von Große Klammern (&myArray)[100] dienen zwei Zwecken:

  • Die Klammern () zeigen an dass wir einen Verweis auf ein Array übergeben.
  • Die großen Klammern [] geben die Größe des übergebenen Arrays an. In diesem Fall handelt es sich um ein Array mit 100 Ganzzahlen.

Alternative Array-Deklarationen

Es ist erwähnenswert, dass die folgenden Deklarationen alle gleichwertig sind:

void foo(int * x);
void foo(int x[100]);
void foo(int x[]);

Die folgende Erklärung gilt jedoch anders:

void foo(int (&x)[100]);

Diese Deklaration akzeptiert nur Arrays mit 100 Ganzzahlen, und wir können sizeof sicher auf x verwenden.

Ungültige Deklaration

Die Die folgende Deklaration ist ungültig:

void foo(int & x[100]); // error

Dies wird als „Array von Referenzen“ analysiert. Dies ist kein gültiger Datentyp in C.

Das obige ist der detaillierte Inhalt vonWie übergebe ich ein Array als Referenz in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn