Heim > Backend-Entwicklung > C++ > Array-Initialisierung in C: „Array[n]' vs. „Array[10]' – Was ist der Unterschied?

Array-Initialisierung in C: „Array[n]' vs. „Array[10]' – Was ist der Unterschied?

Susan Sarandon
Freigeben: 2024-12-16 14:56:11
Original
704 Leute haben es durchsucht

Array Initialization in C  : `Array[n]` vs. `Array[10]` – What's the Difference?

Array[n] vs. Array[10]: Der Unterschied zwischen Variableninitialisierung und numerischen Literalen für Array-Größen

In der C-Programmierung Arrays spielen eine entscheidende Rolle bei der Speicherung und dem Abruf von Daten. Allerdings kann es bei der Arbeit mit der Array-Initialisierung bestimmte Fallstricke geben, insbesondere im Zusammenhang mit der Verwendung von Arrays variabler Länge.

Beachten Sie den folgenden Codeausschnitt:

int n = 10;
double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Nach dem Login kopieren

Dieser Code zielt auf die Initialisierung ab ein Array namens tenorData mit einer Größe, die durch die Variable n bestimmt wird, die auf 10 gesetzt ist. Dieser Ansatz löst jedoch einen Kompilierungsfehler aus, der besagt, dass das Objekt tenorData variabler Größe nicht sein kann auf diese Weise initialisiert.

Der Hauptunterschied in diesem Code liegt in der Verwendung einer Variablen, n, um die Größe des Arrays zu definieren. In C werden Arrays variabler Länge nicht unterstützt, was bedeutet, dass die Größe eines Arrays zur Kompilierzeit eine bekannte Konstante sein muss.

Um dieses Problem zu beheben und das Array erfolgreich zu initialisieren, stehen mehrere Optionen zur Verfügung:

  • Verwenden Sie ein numerisches Literal: Anstatt die Größe einer Variablen zuzuweisen, können Sie direkt die Anzahl der Elemente in angeben Array:
double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Nach dem Login kopieren
  • Konstante verwenden: Sie können die Größe des Arrays als Konstante definieren:
const int n = 10;
double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Nach dem Login kopieren
  • Dynamische Zuweisung verwenden: Weisen Sie dem Array mithilfe der neuen Funktion dynamisch Speicher zu Operator:
int n = 10;
double* tenorData = new double[n];
Nach dem Login kopieren

Denken Sie daran, den Speicher mit delete [] tenorData freizugeben, wenn Sie mit dem Array fertig sind.

  • Verwenden Sie einen Standardcontainer: Erwägen Sie die Verwendung eines Standardcontainers wie std::vector, dessen Größe dynamisch angepasst werden kann benötigt:
int n = 10;
std::vector<double> tenorData(n);
Nach dem Login kopieren

Durch Befolgen dieser Richtlinien können Sie Arrays in C effektiv initialisieren und gleichzeitig die Fallstricke vermeiden, die mit Arrays variabler Länge verbunden sind.

Das obige ist der detaillierte Inhalt vonArray-Initialisierung in C: „Array[n]' vs. „Array[10]' – Was ist der Unterschied?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage