CONTENIDO DE LA LECCIÓN 18
CONTENIDO DE LA LECCIÓN 18
CONTENIDO DE LA LECCIÓN 18
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MIGUEL Á. TOLEDO MARTÍNEZ<br />
respectivo (ceros para arreglos de enteros y de punto flotante y terminadores nulos para arreglos<br />
de caracteres) El siguiente es un ejemplo:<br />
int enteros[5];<br />
void main(void)<br />
{<br />
static char caracteres[5];<br />
} // FINAL <strong>DE</strong> main()<br />
Se ha definido en forma global el arreglo enteros y también como un arreglo estático<br />
local al arreglo caracteres dentro de main() La inspección de estos arreglos con un depurador<br />
revelará lo siguiente:<br />
RESULTADOS <strong>DE</strong>L <strong>DE</strong>PURADOR<br />
Inspección de enteros Inspección de caracteres<br />
[0] 0 [0] ‘\0’<br />
[1] 0 [1] ‘\0’<br />
[2] 0 [2] ‘\0’<br />
[3] 0 [3] ‘\0’<br />
[4] 0 [4] ‘\0’<br />
El depurador muestra que el arreglo global de enteros se ha inicializado con ceros,<br />
mientras que el arreglo de caracteres estático se ha inicializado con caracteres de terminador<br />
nulo. Si define un arreglo con ámbito de bloque local que no es estático y no lo inicializa, el<br />
compilador no suministrará ningún valor de inicialización predeterminado. ¡El arreglo<br />
contendrá basura! De esta manera, si elimináramos la palabra clave static de la definición<br />
anterior del arreglo caracteres, el depurador revelará valores arbitrarios de memoria en el<br />
arreglo.<br />
Aquí está un resumen de la explicación anterior:<br />
• Los arreglos de enteros, de punto flotante y de caracteres se inicializan por medio de un<br />
operador de asignación después de la definición del arreglo, seguido por una lista de valores<br />
individuales de inicialización dentro de llaves.<br />
• Menos valores de iniciación darán como resultado valores predeterminados (ceros para<br />
arreglos de enteros y de punto flotante y terminadores nulos para arreglos de caracteres)<br />
insertados en las posiciones adicionales del arreglo.<br />
• Más valores de iniciación provocan un error de compilación.<br />
• Los arreglos de caracteres se pueden inicializar encerrando una cadena con comillas dobles.<br />
• El tamaño de un arreglo de cadena deberá ser uno más grande que el número de caracteres<br />
dentro de la cadena para dejar espacio para el carácter terminador nulo.<br />
• Si no se especifica un tamaño en la definición del arreglo, el compilador creará el suficiente<br />
espacio de almacenaje para los valores de inicialización.<br />
• Los arreglos globales y arreglos estáticos se inicializan siempre con los valores<br />
predeterminados respectivos cuando ningún valor de iniciación se suministra en la definición<br />
del arreglo.<br />
ARREGLOS, APUNTADORES Y ESTRUCTURAS – <strong>LECCIÓN</strong> <strong>18</strong> <strong>18</strong>-64