MEJOR SITIO PARA DESARROLLADORES WEB
C Idioma. W3Schools en español. Lecciones para principiantes

Ua En De

C Matrices (Arrays)


Matrices (Arrays)

Las matrices se utilizan para almacenar múltiples valores en una sola variable, en lugar de declarar variables separadas para cada valor.

Para crear una matriz, defina el tipo de datos (como int) y especifique el nombre de la matriz seguido de corchetes [] .

Para insertar valores, utilice una lista separada por comas, entre llaves:

int myNumbers[] = {25, 50, 75, 100};

Ahora hemos creado una variable que contiene una matriz de cuatro números enteros.


Acceder a los elementos de una matriz

Para acceder a un elemento de matriz, consulte su número de índice.

Los índices de matriz comienzan con 0: [0] es el primer elemento. [1] es el segundo elemento, etc.

Esta declaración accede al valor del primer elemento [0] en myNumbers:

Ejemplo

int myNumbers[] = {25, 50, 75, 100};
printf("%d", myNumbers[0]);

// Salidas 25
Inténtalo tú mismo »

Cambiar un elemento de matriz

Para cambiar el valor de un elemento específico, consulte el número de índice:

Ejemplo

myNumbers[0] = 33;

Ejemplo

int myNumbers[] = {25, 50, 75, 100};
myNumbers[0] = 33;

printf("%d", myNumbers[0]);

// Ahora genera 33 en lugar de 25
Inténtalo tú mismo »

Recorrer una matriz

Puedes recorrer los elementos de la matriz con el bucle for.

El siguiente ejemplo genera todos los elementos de la matriz myNumbers:

Ejemplo

int myNumbers[] = {25, 50, 75, 100};
int i;

for (i = 0; i < 4; i++) {
  printf("%d\n", myNumbers[i]);
}
Inténtalo tú mismo »

Establecer tamaño de matriz

Otra forma común de crear matrices es especificar el tamaño de la matriz y agregar elementos más adelante:

Ejemplo

// Declarar una matriz de cuatro números enteros:
int myNumbers[4];

// Agregar elementos
myNumbers[0] = 25;
myNumbers[1] = 50;
myNumbers[2] = 75;
myNumbers[3] = 100;
Inténtalo tú mismo »

Al utilizar este método, debe conocer el número de elementos de la matriz de antemano para que el programa almacene suficiente memoria.

No puedes cambiar el tamaño de la matriz después de su creación.


Obtener tamaño o longitud de la matriz

Para obtener el tamaño de una matriz, puede utilizar el operador sizeof:

Ejemplo

int myNumbers[] = {10, 25, 50, 75, 100};
printf("%lu", sizeof(myNumbers)); // Impresiones 20
Inténtalo tú mismo »

¿Por qué el resultado muestra 20 en lugar de 5, cuando la matriz contiene 5 elementos?

— Se debe a que el operador sizeof devuelve el tamaño de un tipo en bytes.

Aprendiste del capítulo sobre tipos de datos que un tipo int suele tener 4 bytes, por lo que desde el principio ejemplo anterior, 4 x 5 (4 bytes x 5 elementos) = 20 bytes.

Conocer el tamaño de la memoria de una matriz es excelente cuando se trabaja con programas más grandes que requieren una buena administración de la memoria.

Pero cuando solo quieres saber cuántos elementos tiene una matriz, puedes usar la siguiente fórmula (que divide el tamaño de la matriz por el tamaño de un elemento de la matriz):

Ejemplo

int myNumbers[] = {10, 25, 50, 75, 100};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);

printf("%d", length);  // Impresiones 5
Inténtalo tú mismo »

Hacer mejores bucles

En la sección de bucles de matriz anterior, escribimos el tamaño de la matriz en la condición del bucle (i < 4). Esto no es ideal, ya que solo funcionará para matrices de un tamaño específico.

Sin embargo, al usar la fórmula sizeof del ejemplo anterior, ahora podemos crear bucles que funcionen para matrices de cualquier tamaño, lo cual es más sostenible.

En lugar de escribir:

Ejemplo

int myNumbers[] = {25, 50, 75, 100};
int i;

for (i = 0; i < 4; i++) {
  printf("%d\n", myNumbers[i]);
}
Inténtalo tú mismo »

es mejor escribir:

Ejemplo

int myNumbers[] = {25, 50, 75, 100};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);
int i;

for (i = 0; i < length; i++) {
  printf("%d\n", myNumbers[i]);
}
Inténtalo tú mismo »

Ejemplo de la vida real

Para demostrar un ejemplo práctico del uso de matrices, creemos un programa que calcule el promedio de diferentes edades:

Ejemplo

// Una matriz que almacena diferentes edades
int ages[] = {20, 22, 18, 35, 48, 26, 87, 70};

float avg, sum = 0;
int i;

// Obtener la longitud de la matriz
int length = sizeof(ages) / sizeof(ages[0]);

// Recorre los elementos de la matriz
for (int i = 0; i < length; i++) {
  sum += ages[i];
}

// Calcula el promedio dividiendo la suma por la longitud
avg = sum / length;

// imprimir el promedio
printf("La edad promedio es: %.2f", avg);
Inténtalo tú mismo »

C Ejercicios

Ponte a prueba con ejercicios

Ejercicio:

Cree una matriz de tipo int llamada myNumbers.

   {25, 50, 75, 100};