06.05.2013 Views

CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!