C ++ Fehlerinitializer -Element ist nicht konstant

C ++ Fehlerinitializer -Element ist nicht konstant
In diesem Artikel werden wir einen Compiler -Fehler diskutieren, den ein Programmierer häufig beim Codieren in C ++ - Sprache erhält: Das „Initializer -Element ist nicht konstant“. Um den Fehler zuerst zu verstehen, müssen wir den Hintergrund von Initialisierern und globalen Variablen verstehen. Globale Variablen sind also die Variablen, die ein Programmierer außerhalb des Codes außerhalb der Funktionen definiert. Eine weltweit deklarierte Variable hält den Wert, der während der gesamten Ausführung von Code darin gespeichert ist, und verliert ihn nicht, sobald eine Funktion ausgeführt wurde.

Der Vorteil der globalen Variablenerklärung besteht darin, dass sie in jeder Funktion und in jedem Teil des Codes verwendet werden können. Dies bedeutet, dass wir sie und ihre Werte in unserem Code verwenden können. Es ist für die C ++ - Programmierung erforderlich, dass globale Variablen mit konstanten Ausdrücken initialisiert werden sollten. Wenn ein Programmierer oder Codierer dies nicht vergisst oder nicht kann, wird der hier besprochene Fehler verursacht. Dieser Fehler wird auch verursacht, wenn statische Variablen ebenfalls nicht deklariert werden. Um einen solchen Fehler zu vermeiden, muss man bei der Initialisierung der globalen Variablen einen konstanten Wert übergeben oder 0 bestehen. Dies ist also eine Regel, die durch C ++ - Sprache definiert ist. Wenn diese Situation stattfindet, wird dieser Fehler verursacht. Um diese Art von Fehler zu beheben, können wir Variablen in einer Funktion deklarieren oder sie mit einem konstanten Wert initialisieren.

Syntax:

Dies ist keine integrierte Funktion oder Bibliothek. Es gibt also keine Standardfunktion, um sie aufzurufen. Stattdessen ist es ein Fehler, sodass eine Nachricht vorliegt, die zurückgegeben wird, wenn wir auf einen solchen Fehler stoßen.

Fehler: Initializer -Element ist nicht konstant

Das obige gezeigte ist die Fehlermeldung. Es könnte sich in einigen Fällen ändern, aber der Kontext der Nachricht bleibt gleich bleiben.

Beispiel # 01:

Um diesen Fehler besser zu erfüllen und diesen Fehler ausführlicher zu verstehen, werden wir ein praktisches Beispiel durchführen. Zu tun haben wir globale Variablen „A“ und „B“ initialisiert. Der Wert der Variablen A wird als 100 initialisiert. Der Wert von B ist gleich A. Dies bedeutet, dass unabhängig von dem Wert von A das gleiche wie der Wert von b entspricht. In unserer Hauptfunktion haben wir den Wert von B mit der Nachricht „Der Wert von B =“ gedruckt. Wir haben hier keinen komplexen Code geschrieben, um unseren Standpunkt klar zu machen. In Zeile 10 haben wir 0 zurückgegeben, weil unsere Hauptfunktion eine Ganzzahl als Rückgabetyp hat. Jetzt werden wir unseren Code ausführen, um zu sehen, was passiert.

#enthalten
Verwenden von Namespace STD;
int a = 100;
int b = a;
int main ()

Cout<<"The value of b="<Rückkehr 0;

Nachdem wir unseren Code ausgeführt haben, haben wir nicht die gewünschte Ausgabe. Anstelle unserer Ausgabe hat der Compiler uns einen Fehler gegeben, der "Initialisiererelement ist nicht konstant" ist. Danach zeigte es uns den Code, in dem der Fehler aufgetreten ist, und das ist Zeilennummer 3. Wenn wir uns jetzt an unseren Code erinnern, haben wir den Wert von Ganzzahl B in Zeile 3 initialisiert, was bedeutet, dass es ein Problem mit diesem Code -Stück gibt. Lassen Sie uns versuchen, dieses Problem zu lösen.

Um das Problem in Zeile 3 zu beheben, haben wir unseren Code erneut überprüft und das Problem diagnostiziert. Wir haben früher in der Einführung besprochen, dass dieser Fehler auftritt, wenn wir keine Variable deklarieren, die wir in unserem Code global deklarieren oder keinen konstanten Wert an sie übergeben. Der gleiche Fall ist hier aufgetreten. Wir haben den Wert der Ganzzahl a bis b übergeben. Die Ganzzahl A ist eine Variable, keine Konstante, daher könnte sich sein Wert ändern, sodass der Compiler uns den Fehler gezeigt hat.

Wir haben den Wert von B auf 100 initialisiert. Danach haben wir den Code ausgeführt, und der Code wurde erfolgreich zusammengestellt. In diesem Beispiel haben wir also deutlich gemacht, dass wir keinen dynamischen Wert an eine globale Variable übergeben können.

Beispiel # 02:

Dies ist im Vergleich zum vorherigen ein wenig komplexes Beispiel, aber der Zweck eines komplexen Beispiels besteht darin, den Fehler genauer zu verstehen. Um es auszuführen, haben wir vier ganze Zahlen deklariert, die X, Y, Z und ich sind. Die Werte der x, y und z -Variablen betragen 10, 20 bzw. 50, während „I“ eine Ganzzahl ist, mit der keine Operation durchgeführt wird. Aber es wird als Iterator für unsere Schleife verwendet, die wir in unserer Hauptmethode verwenden werden. Wir können diese Ganzzahl auch in unserer Hauptmethode deklarieren, aber wir fanden es einfach, also haben wir sie hier deklariert.

Sie können es in der Hauptfunktion oder in einer for -Schleife deklarieren. Danach haben wir einen Ganzzahlzeiger erklärt, der X entspricht. In Zeile 6 haben wir ein Array deklariert, das ebenfalls global deklariert und drei Werte bestanden hat, weil es eine Länge von 3 hat. In unserer Hauptmethode haben wir eine Schleife geschrieben, die dreimal ausgeführt wird und die Adresse der Indizes des Arrays und die in diesem Index des Array gespeicherten Werte druckt. Jetzt werden wir unseren Code ausführen, um unsere Ausgabe zu sehen.

#enthalten
Verwenden von Namespace STD;
int a = 10, y = 20, z = 50, i;
int *p = & x;
int *arr [3] = p, & y, & z;
int main ()

für (i = 0; i<3; i++)
Cout<<"Address ="<
Rückkehr 0;

Nach der Ausführung unseres Code hat der Compiler uns den Fehler gegeben, was bedeutet, dass unser Code nicht erfolgreich zusammengestellt wird. Wenn wir uns die Nachricht unseres Fehlers ansehen, können wir sehen, dass wir den gleichen Fehler wie im vorherigen Beispiel haben. Diesmal ist es in Zeile 6 unseres Codes aufgetreten. Wenn wir unseren Code und unsere Überprüfung Zeile 6 betrachten, initialisieren und deklarieren wir unser Array in Zeile 6. Es gab also einen Fehler bei der Erklärung oder Initialisierung unseres Arrays. Wenn wir uns den Initialisierungsteil ansehen, können wir sehen, dass wir die Variablen y und z gemäß den Programmierstandards bestanden haben, aber wir haben X durch einen Zeiger bestanden. Der Zeiger ist keine konstante Variable und sein Wert könnte sich ändern. Der Code hat also einen Fehler gegeben.

Um den Fehler zu beheben, werden wir die Ganzzahl X direkt übergeben und sehen, was passiert.

Der Code wurde erfolgreich ausgeführt, um die Adresse und Werte der Indizes unseres Arrays zurückzugeben.

Abschluss

In diesem Artikel haben wir einen Fehler erörtert, der "Initializer -Element ist nicht korrekt". Wir haben die Grundlagen globaler Variablen diskutiert und wie man sie gemäß den Codierungsregeln und -standards initialisiert. Wir haben auch mehrere Beispiele durchgeführt, um diesen Fehler zu erhalten, und diese behoben.