El elemento inicializador de error C ++ no es constante

El elemento inicializador de error C ++ no es constante
En este artículo, discutiremos un error del compilador que un programador a menudo recibe mientras codifica en el lenguaje C ++: el "elemento inicializador no es constante". Para comprender el error primero, debemos comprender los antecedentes de los inicializadores y las variables globales. Entonces, las variables globales son aquellas variables que un programador define en la parte superior del código fuera de las funciones. Una variable que se declara a nivel mundial mantendrá el valor que se almacena en él durante la ejecución del código y no la perderá una vez que se ejecute una función.

La ventaja de la declaración global de variables es que pueden usarse en cualquier función y cualquier parte del código. Esto significa que podemos usarlos y sus valores a lo largo de nuestro código. Es necesario para la programación de C ++ que las variables globales se inicialicen con expresiones constantes. Si un programador o codificador olvida o no puede hacerlo, causará el error que se está discutiendo aquí. Este error también se causa si las variables estáticas tampoco se declaran. Entonces, para evitar tal error, uno debe pasar un valor constante al inicializar la variable global o pasarlos 0. Entonces, esta es una regla definida por el lenguaje C ++. Si esta situación tiene lugar, causará este error. Entonces, para corregir este tipo de error, podemos declarar variables en una función o inicializarlas con un valor constante.

Sintaxis:

Esta no es una función o biblioteca incorporada. Entonces, no tiene una función estándar para llamarlo. En cambio, es un error, por lo que tendrá un mensaje que se devolverá si encontramos dicho error.

Error: el elemento inicializador no es constante

El anterior que se muestra es el mensaje de error. Podría cambiar en algunos casos, pero el contexto del mensaje seguirá siendo el mismo.

Ejemplo # 01:

Ahora, para obtener un mejor control de este error y para comprender este error con más detalle, realizaremos un ejemplo práctico. Para hacer, por lo que hemos inicializado las variables globales "A" y "B". El valor de la variable A se inicializa como 100. El valor de B es igual a un. Esto significa que cualquiera que sea el valor de A será el mismo que el valor de B. En nuestra función principal, hemos imprimido el valor de B con el mensaje "El valor de b =". No hemos escrito ningún código complejo aquí solo para aclarar nuestro punto. En la línea 10 hemos devuelto 0 porque nuestra función principal tiene un entero como tipo de retorno. Ahora, ejecutaremos nuestro código para ver qué pasa.

#incluir
usando el espacio de nombres STD;
int a = 100;
int b = a;
int main ()

cout<<"The value of b="<regresar 0;

Después de ejecutar nuestro código, no tenemos la salida deseada. En lugar de nuestra salida, el compilador nos ha dado un error que es "El elemento inicializador no es constante". Después de eso, nos mostró el código en el que ocurrió el error y esa es la línea número 3. Ahora, si recordamos nuestro código, inicializamos el valor de Integer B en la línea 3, lo que significa que hay un problema con esa pieza de código. Intentemos resolver ese problema.

Para resolver el problema en la línea 3, hemos vuelto a verificar nuestro código y hemos diagnosticado el problema. Discutimos anteriormente en la introducción de que este error ocurre cuando no declaramos una variable que declaramos globalmente en nuestro código o no le pasamos un valor constante. El mismo caso ha ocurrido aquí. Hemos pasado el valor del entero A a B. El entero A es una variable, no una constante, por lo tanto, su valor podría cambiar, por lo que el compilador nos ha mostrado el error.

Hemos inicializado el valor de B a 100. Después de eso, ejecutamos el código y el código se compiló correctamente. Entonces, con este ejemplo, hemos dejado en claro que no podemos pasar un valor dinámico a una variable global.

Ejemplo # 02:

Este es un ejemplo un poco complejo en comparación con el anterior, pero el propósito de hacer un ejemplo complejo es hacerle comprender el error con más detalle. Para realizarlo, hemos declarado cuatro enteros que son X, Y, Z y yo. Los valores de las variables X, Y y Z son 10, 20 y 50 respectivamente, mientras que "I" es un entero que no se utilizará para realizar ninguna operación. Pero se utilizará como iterador para nuestro bucle que utilizaremos en nuestro método principal. También podemos declarar este entero en nuestro método principal, pero lo encontramos fácil, por lo que lo declaramos aquí.

Puede declararlo en la función principal o en un bucle for. Después de eso, declaramos un puntero entero que es igual a x. En la línea 6 hemos declarado una matriz que también se declara a nivel mundial y lo ha pasado tres valores porque tiene una longitud de 3. En nuestro método principal, hemos escrito un bucle que se ejecutará tres veces e imprimirá la dirección de los índices de la matriz y los valores almacenados en ese índice de la matriz. Ahora, ejecutaremos nuestro código para ver nuestra salida.

#incluir
usando el espacio de nombres STD;
int a = 10, y = 20, z = 50, i;
int *p = & x;
int *arr [3] = p, & y, & z;
int main ()

para (i = 0; i<3; i++)
cout<<"Address ="<
regresar 0;

Después de la ejecución de nuestro código, el compilador nos ha dado el error, lo que significa que nuestro código no se compila correctamente. Si echamos un vistazo al mensaje de nuestro error, podemos ver que tenemos el mismo error que en el ejemplo anterior. Esta vez ha ocurrido en la línea 6 de nuestro código. Si miramos nuestro código y verificamos la línea 6, estamos iniciando y declarando nuestra matriz en la línea 6. Entonces ha habido un error al declarar o inicializar nuestra matriz. Si observamos la parte inicializadora, podemos ver que hemos pasado las variables Y y Z de acuerdo con los estándares de programación, pero hemos pasado X a través de un puntero. El puntero no es una variable constante y su valor podría cambiar. Entonces, el código ha dado un error.

Para resolver el error, pasaremos el entero X directamente y veremos qué sucede.

El código se ha ejecutado con éxito devolviendo la dirección y los valores de los índices de nuestra matriz.

Conclusión

En este artículo, discutimos un error que es "El elemento inicializador no es correcto". Discutimos los conceptos básicos de las variables globales y cómo inicializarlas de acuerdo con las reglas y estándares de codificación. También realizamos múltiples ejemplos para obtener este error y los resolvimos.