Arreglos en C: declaración, inicialización y arrays multidimensionales

InformáticaActualizado el 4,32 KB

Resumen

Este documento explica los arreglos en C: qué son, cómo se declaran y cómo se inicializan. Trata los arreglos unidimensionales, las cadenas de caracteres y los arreglos multidimensionales, que se guardan por filas. Incluye ejemplos de código y la forma habitual de recorrer un arreglo bidimensional con bucles anidados.

Puntos clave

  • Un arreglo es una colección de datos del mismo tipo que se referencian con un nombre común. Sus elementos se numeran desde 0.
  • En int a[10], los índices válidos van de a[0] a a[9].
  • Los elementos de un arreglo se almacenan en bloques contiguos de memoria.
  • Una cadena de caracteres es un arreglo de caracteres que termina con el carácter nulo \0.
  • Los arreglos multidimensionales se guardan por filas (row-major order): el primer subíndice es la fila y el segundo es la columna.
  • En int b[2][3] = {1, 2, 3, 4, 5, 6}, los valores se asignan en orden de filas.
  • Para recorrer un arreglo bidimensional se usan bucles anidados.

Ponte a prueba

Conceptos Fundamentales de Arreglos (Arrays) en C

Un arreglo (también conocido como lista o tabla) es una colección de datos del mismo tipo que se referencian utilizando un nombre común. Los elementos del arreglo se numeran consecutivamente: 0, 1, 2, 3… (valores índices). En general, el elemento i-ésimo se encuentra en la posición i-1. Así, si un arreglo a tiene n elementos, sus nombres serán a[0], a[1], ..., a[n-1]. Puede contener cualquier tipo de dato de C, incluyendo estructuras.

Declaración de Arreglos Unidimensionales

Un arreglo se declara de forma similar a otros tipos de datos, pero es crucial indicar al compilador su tamaño o longitud. La sintaxis para declarar un arreglo de una dimensión es:

Tipo nombreArreglo[numeroDeElementos];

El índice de un arreglo también se conoce como subíndice. Por ejemplo, en el arreglo int a[10], los índices válidos van desde a[0] hasta a[9].

Los elementos de un arreglo se almacenan en bloques contiguos de memoria. Cada carácter ocupa un byte. En las cadenas de caracteres, el sistema siempre inserta un carácter nulo (\0) al final para indicar el fin de la cadena.

Inicialización de Arreglos

Es fundamental asignar valores a los elementos de un arreglo antes de utilizarlos. Para asignar valores a cada elemento de un arreglo de enteros p, se podría escribir: p[0]=10; p[1]=20; p[2]=30; p[3]=40;. Sin embargo, este método no es práctico cuando el arreglo contiene muchos elementos.

Ejemplos de Declaración e Inicialización

int num[6] = {10, 20, 30, 40, 50, 60};
int x[] = {1, 2, 3}; // Declara un arreglo de 3 elementos
char ch[] = {'L', 'u', 'n', 'e', 's'}; // Declara un arreglo de cinco caracteres

Inicialización de Cadenas de Caracteres

Una cadena de caracteres es, en esencia, un arreglo de caracteres que contiene el carácter nulo (\0) al final. Por ejemplo, en la declaración char cadena[] = "abcdefg";, el compilador inserta automáticamente el carácter nulo (\0) al final de la cadena.

Considera el ejemplo: char cadena[7] = "ABCDEF";

Internamente, esto se representa como: {'A', 'B', 'C', 'D', 'E', 'F', '\0'}.

Arreglos Multidimensionales

Los arreglos multidimensionales son estructuras de datos que poseen más de una dimensión y, por lo tanto, requieren múltiples índices para acceder a sus elementos. Es posible crear arreglos con tantas dimensiones como sean necesarias para una aplicación específica.

Es importante destacar que los elementos de los arreglos multidimensionales se almacenan en memoria por filas (row-major order). Esto significa que el primer subíndice (el más cercano al nombre del arreglo) representa la fila, y el segundo subíndice representa la columna.

Declaración de Arreglos Bidimensionales

La sintaxis para declarar un arreglo de dos dimensiones es:

<tipoElemento> <nombreArreglo>[numeroDeFilas][numeroDeColumnas];

Ejemplo de Declaración y Almacenamiento

Dada la declaración: int a[5][6];

El orden de almacenamiento en memoria sería: a[0][0], a[0][1], a[0][2], ..., a[0][5], a[1][0], a[1][1], ..., a[1][5], ..., a[4][0], ..., a[4][5].

Inicialización de Arreglos Multidimensionales

Los arreglos multidimensionales pueden inicializarse en el momento de su declaración, de manera similar a los arreglos unidimensionales. La inicialización se realiza mediante una lista de constantes separadas por comas y encerradas entre llaves, como se muestra en el siguiente ejemplo:

int b[2][3] = {1, 2, 3, 4, 5, 6};

Acceso a Elementos de Arreglos Bidimensionales

Para acceder a los elementos de arreglos bidimensionales, se suelen utilizar bucles anidados. La sintaxis general es la siguiente:

int indiceFila, indiceCol;
for (indiceFila = 0; indiceFila < numFilas; ++indiceFila) {
    for (indiceCol = 0; indiceCol < numColumnas; ++indiceCol) {
        // Procesar elemento [indiceFila][indiceCol]
    }
}

Descargar

PDF Word HTML

Preguntas frecuentes

¿Qué índices válidos tiene un arreglo int a[10]?

Los índices válidos van desde a[0] hasta a[9]. El subíndice también se conoce como índice.

¿Cómo se guarda una cadena de caracteres en C?

Es un arreglo de caracteres que termina con el carácter nulo \0. Por ejemplo, char cadena[7] = "ABCDEF" se representa como {'A', 'B', 'C', 'D', 'E', 'F', '\0'}.

¿Cómo se recorre un arreglo bidimensional?

Se suelen usar bucles anidados. El bucle externo recorre las filas y el interno recorre las columnas.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Cuál es el primer índice válido de un arreglo en C?
2. ¿Qué índices válidos tiene int a[10]?
3. ¿Qué carácter termina una cadena de caracteres en C?
4. ¿Cuántas posiciones ocupa el arreglo char cadena[7] = "ABCDEF"?
5. ¿En qué orden se almacenan los elementos de un arreglo bidimensional?
6. En int a[5][6], ¿qué representa el primer subíndice?
7. ¿Qué orden de almacenamiento sigue int a[5][6] en memoria?
8. ¿Cómo se recorre un arreglo bidimensional según el texto?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.