L'élément initialiseur d'erreur C ++ n'est pas constant

L'élément initialiseur d'erreur C ++ n'est pas constant
Dans cet article, nous discuterons d'une erreur de compilateur qu'un programmeur obtient souvent lors du codage dans le langage C ++: l'élément d'initialisation n'est pas constant ". Pour comprendre d'abord l'erreur, nous devons comprendre les antécédents des initialiseurs et des variables globales. Ainsi, les variables globales sont les variables qu'un programmeur définit en haut du code en dehors des fonctions. Une variable qui est déclarée globalement conservera la valeur qui y est stockée tout au long de l'exécution du code et ne la perdra pas une fois qu'une fonction sera exécutée.

L'avantage de la déclaration globale de variables est qu'ils peuvent être utilisés dans n'importe quelle fonction et n'importe quelle partie du code. Cela signifie que nous pouvons les utiliser et leurs valeurs tout au long de notre code. Il est nécessaire pour la programmation C ++ que les variables globales doivent être initialisées avec des expressions constantes. Si un programmeur ou un codeur oublie ou est incapable de le faire, cela entraînera l'erreur discutée ici. Cette erreur est également causée si les variables statiques ne sont pas non plus déclarées. Ainsi, pour éviter une telle erreur, il faut passer une valeur constante tout en initialisant la variable globale ou leur passer 0. Donc, c'est une règle définie par la langue C ++. Si cette situation se déroule, elle entraînera cette erreur. Donc, pour corriger ce type d'erreur, nous pouvons déclarer des variables dans une fonction ou les initialiser avec une valeur constante.

Syntaxe:

Ce n'est pas une fonction ou une bibliothèque intégrée. Donc, il n'a pas de fonction standard pour l'appeler. Au lieu de cela, c'est une erreur, il aura donc un message qui sera renvoyé si nous rencontrons une telle erreur.

Erreur: L'élément d'initialisation n'est pas constant

Le message ci-dessus est le message d'erreur. Cela pourrait changer dans certains cas, mais le contexte du message restera le même.

Exemple # 01:

Maintenant, pour mieux saisir cette erreur et pour comprendre cette erreur plus en détail, nous allons effectuer un exemple pratique. Pour ce faire, nous avons donc initialisé les variables globales «A» et «B». La valeur de la variable a est initialisée à 100. La valeur de b est égale à un. Cela signifie que quelle que soit la valeur d'un. Dans notre fonction principale, nous avons imprimé la valeur de B avec le message «La valeur de b =». Nous n'avons écrit aucun code complexe ici juste pour indiquer notre point. Dans la ligne 10, nous avons retourné 0 parce que notre fonction principale a un entier comme type de retour. Maintenant, nous allons exécuter notre code pour voir ce qui se passe.

#inclure
Utilisation de Namespace Std;
int a = 100;
int b = a;
int main()

couter<<"The value of b="<retour 0;

Après avoir exécuté notre code, nous n'avons pas la sortie souhaitée. Au lieu de notre sortie, le compilateur nous a donné une erreur qui est "l'élément initialisateur n'est pas constant". Après cela, il nous a montré le code dans lequel l'erreur s'est produite et c'est la ligne numéro 3. Maintenant, si nous rappelons notre code, nous avons initialisé la valeur de l'entier B à la ligne 3, ce qui signifie qu'il y a un problème avec ce morceau de code. Essayons de résoudre ce problème.

Pour résoudre le problème à la ligne 3, nous avons re-vérifié notre code et nous avons diagnostiqué le problème. Nous avons discuté plus tôt dans l'introduction que cette erreur se produit lorsque nous ne déclarons pas de variable que nous déclarons à l'échelle mondiale dans notre code ou que nous ne lui faisons pas de valeur constante. Le même cas s'est produit ici. Nous avons passé la valeur de l'entier A à B. L'entier A est une variable, pas une constante, donc sa valeur pourrait changer, donc le compilateur nous a montré l'erreur.

Nous avons initialisé la valeur de B à 100. Après cela, nous avons exécuté le code et le code a été compilé avec succès. Ainsi, par cet exemple, nous avons indiqué clairement que nous ne pouvons pas transmettre une valeur dynamique à une variable globale.

Exemple # 02:

C'est un exemple un peu complexe par rapport à la précédente, mais le but de faire un exemple complexe est de vous faire comprendre l'erreur plus en détail. Pour l'exécuter, nous avons déclaré quatre entiers qui sont x, y, z et i. Les valeurs des variables x, y et z sont respectivement de 10, 20 et 50 tandis que «i» est un entier qui ne sera utilisé pour effectuer aucune opération. Mais il sera utilisé comme itérateur pour notre boucle que nous utiliserons dans notre méthode principale. Nous pouvons également déclarer cet entier dans notre méthode principale, mais nous l'avons trouvé facile, donc nous l'avons déclaré ici.

Vous pouvez le déclarer dans la fonction principale ou dans une boucle pour. Après cela, nous avons déclaré un pointeur entier qui est égal à x. Dans la ligne 6, nous avons déclaré un tableau qui est également déclaré mondialement et adopté trois valeurs car elle a une longueur de 3. Dans notre méthode principale, nous avons écrit une boucle qui s'exécutera trois fois et imprimera l'adresse des index du tableau et les valeurs stockées dans cet index du tableau. Maintenant, nous allons exécuter notre code pour voir notre sortie.

#inclure
Utilisation de Namespace Std;
int a = 10, y = 20, z = 50, i;
int * p = & x;
int * arr [3] = p, & y, & z;
int main()

pour (i = 0; i<3; i++)
couter<<"Address ="<
retour 0;

Après l'exécution de notre code, le compilateur nous a donné l'erreur, ce qui signifie que notre code n'est pas compilé avec succès. Si nous jetons un œil au message de notre erreur, nous pouvons voir que nous avons la même erreur que dans l'exemple précédent. Cette fois, cela s'est produit à la ligne 6 de notre code. Si nous regardons notre code et vérifions la ligne 6, nous initialisons et déclarons notre tableau à la ligne 6. Il y a donc eu une erreur dans la déclaration ou l'initialisation de notre tableau. Si nous regardons la partie initialisée, nous pouvons voir que nous avons passé les variables Y et Z selon les normes de programmation, mais nous avons passé X à travers un pointeur. Le pointeur n'est pas une variable constante et sa valeur pourrait changer. Donc, le code a donné une erreur.

Pour résoudre l'erreur, nous passerons directement l'Enteger X et voir ce qui se passe.

Le code a été exécuté avec succès renvoyant l'adresse et les valeurs des index de notre tableau.

Conclusion

Dans cet article, nous avons discuté d'une erreur qui est «l'élément initialiseur n'est pas correct». Nous avons discuté des bases des variables globales et de la façon de les initialiser en fonction des règles et des normes de codage. Nous avons également effectué plusieurs exemples pour obtenir cette erreur et les avons résolues.