Heim > Backend-Entwicklung > C++ > Hauptteil

Können Sie in C ein Array mit einer Variablengröße deklarieren?

DDD
Freigeben: 2024-11-01 22:11:29
Original
387 Leute haben es durchsucht

Can You Declare an Array with a Variable Size in C  ?

Variable Array-Größendeklaration in C

In C wird normalerweise erwartet, dass die Größe eines Arrays ein konstanter ganzzahliger Wert ist. Es stellt sich jedoch die Frage, ob es möglich ist, ein Array mit einer nicht konstanten Variablen als Größe zu deklarieren.

Wie Bjarne Stroustrup in The C Programming Language hervorhebt, „muss ein Array, das gebunden ist, ein konstanter Ausdruck sein.“ Daher wird der folgende Code als falsch angesehen:

<code class="cpp">int ArraySize = 5;
int MyArray[ArraySize]; // incorrect</code>
Nach dem Login kopieren

Überraschenderweise wird der Code jedoch auf einigen Systemen wie GCC v4.4.0 erfolgreich kompiliert:

<code class="cpp">void f(int i) {
    int v2[i];
}

int main() {
    int i = 3;
    int v1[i];
    f(5);
}</code>
Nach dem Login kopieren

Dieses unerwartete Verhalten ist auf eine GCC-Erweiterung des Standards zurückzuführen. Standardmäßig erlaubt GCC die Verwendung einer nicht konstanten Variablen als Array-Größe. Allerdings wird diese Funktion möglicherweise nicht von allen Compilern oder Plattformen unterstützt.

Wenn Portabilität erforderlich ist, wird dringend empfohlen, die Option -pedantic mit GCC zu verwenden, um Warnungen für diese Erweiterung zu aktivieren, oder -std=c zu verwenden 98, um einen Fehler auszulösen. Durch die Einhaltung des Standards wird der Code zuverlässiger und plattformübergreifend kompatibel.

Das obige ist der detaillierte Inhalt vonKönnen Sie in C ein Array mit einer Variablengröße deklarieren?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!