You are on page 1of 5

1/4/2014 Manual de programación en C: Arrays.

| White-Hat Hacking

White-Hat Hacking
I ntroduzca aquí frase transcendente

Manual de programación en C: Arrays.


Publicado en 27 noviembre, 2010

2 Votes

Nos meteremos en esta entrega con los arrays. Es cierto que no podremos entender
algunos usos sin antes haber visto punteros, pero considero que los arrays son
bastante más sencillos de entender y usar que los punteros así que prefiero primero
explicar los arrays, después veremos los punteros y explicaré algunas cosas sobre
arrays que aquí se quedarán un poco en suspenso.

¿Qué son los arrays?

Supongamos que hacemos un programa que nos pide las temperaturas de todos los días del mes para después
mostrarnos todas las temperaturas en una tabla y calcular la media. ¿Cómo haríamos esto con lo que sabemos?
Tendríamos que hacer 31 variables, por ejemplo:

int dia1, dia2, dia3, dia4, ..., dia31;


scanf("%i", &dia1);
scanf("%i", &dia2);
...
scanf("%i", $dia31);

int media = (dia1+dia2+dia3+...+dia31)/31;


etc...

Como vemos esto puede llegar a resultar un verdadero coñazo, y esto cuando son 31 variables, ¿y si necesitamos
1000 variables?

Estos problemas los resolvemos con los arrays.

Un array es una variable que contiene a varias (se que esto no es así, pero prefiero explicar punteros antes de
meterme con la definición de array). Con los arrays podemos juntar bajo un mismo nombre a un montón de
variables que se distinguirán entre si con un índice. Veremos el mismo ejemplo que antes pero cusando un
array de variables int, primero cómo crear el array:

int dia[31];

Vemos que lo primero es como siempre especificar el tipo de dato, en este caso int, ya que la temperatura la
metemos como un número entero. Después el nombre de la variable y entre corchetes [] el número de variables
que queremos tener. Podemos acceder a cada variable usando el nombre de la variable, en este caso “dia” y
http://whitehathacking.wordpress.com/2010/11/27/manual-de-programacion-en-c-arrays/ 1/5
1/4/2014 Manual de programación en C: Arrays. | White-Hat Hacking

luego entre corchetes el índice. Tenemos entonces las variables dia[0], dia[1], dia[2], …, dia[30]. Ten en cuenta
que el número que pongas será el número de variables que se creen, en este caso 31, pero el índice solo llega a
n-1 valores, en este caso 30, ya que variable[0] también existe. Si haces: variable[n], existirán desde
variable[0] hasta variable[n-1].

La diferencia ahora es que podemos usar otra variable para especificar el índice, de modo que todo se hace
mucho más llevadero. Por ejemplo, podemos crear la variable i y acceder a la variable dia[i], de este modo
podemos acceder a cada una a través de un solo bucle y no de una en una como en el ejemplo anterior.

int dia[31];
int i=0;
int acumulador = 0;

for (i=0;i<31;i++)
{
printf("Introduce la temperatura el día %i: ", i+1);
scanf("%i", &dia[i]);
printf("\n");
acumulador += dia[i];
}

int media=acumulador/31;

printf("La media del mes es: %i", media);

Vemos que el código se simplifica muchísimo. Usamos la variable del bucle i para acceder a cada variable dia y
meterle un valor.

Podemos dar valor a un array completo al declararlo de la siguiente manera:

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

Arrays multidimensionales

También podemos crear arrays multidimensionales, por ejemplo, si queremos crear una tabla de 3×5 para
guardar cosas, podemos hacer 3 arrays de 5 valores, o podemos crear un array bidimensional de la siguiente
manera

int matriz[3][5];

Podemos ver esto como una matriz de 3 filas y 5 columnas:

[x][x][x][x][x]
[x][x][x][x][x]
[x][x][x][x][x]

http://whitehathacking.wordpress.com/2010/11/27/manual-de-programacion-en-c-arrays/ 2/5
1/4/2014 Manual de programación en C: Arrays. | White-Hat Hacking

Para dar valores directamente hacemos lo mismo que antes:

int matriz[3][5] = {
{1,2,3,4,5},
{6,7,8,9,10},
{1,6,5,4,7}};

¿Cómo haríamos para hacer un bucle que recorra la matriz entera? Recuerda que en un bloque de código
puedes poner lo que quieras, si anidamos un bucle dentro de otro podemos recorrer una matriz bidimensional.

int matriz[3][5];
int i, j;
for (i=0;i<3;i++)
{
for (j = 0; j<5;j++)
{
printf("Valor: ");
scanf("%i", &matriz[i][j]);
}
}

Esto podemos aplicarlo a cualquier dimensión, podemos hacer arrays tridimensionales, tetradimensionales,
etc… Poniendo más corchetes y valores.

Recorrer un array

Recorrer un array es básicamente ir sobre todos sus elementos, como hemos visto antes lo podemos hacer con
un bucle for, o bucles for anidados dependiendo de la dimensión del array.

Si intentas combinar arrays y funciones puede que encuentres problemas. Esto ocurre porque no le podemos
pasar un array completo a una función, para ello usaremos punteros, de modo que el próximo capítulo será
sobre punteros, y después vendrá un nuevo capítulo sobre arrays para poder aprovecharlos a tope.

Nos veremos en la próxima entrega.

Manual de C by The Neowriter is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike


3.0 Unported License.

http://whitehathacking.wordpress.com/2010/11/27/manual-de-programacion-en-c-arrays/ 3/5
1/4/2014 Manual de programación en C: Arrays. | White-Hat Hacking
About these ads

You May Like

1.

Trust Rating
About this Ad

About this Ad

92%
whitehathacking.wordpress.com
Seguir

Compart e: Seguir “White-Hat


Hacking”
 Imprimir  Más
Recibe cada nueva
publicación en tu buzón de
 Me gusta correo electrónico.
Se el primero en decir que te gusta.
Únete a otros 100 seguidores

Introduce tu dirección de correo electrónico


Relacionado
Suscríbeme
Manual de Programación en C: Sentencias de Manual de Programación en C: Introducir Manual de programación en C: Funciones.
control de flujo datos. scanf() getch() y getchar() En "Manual de programación en C"
Ofrecido por WordPress.com
En "Manual de programación en C" En "Manual de programación en C"

Esta entrada fue publicada en Manual de programación en C, Manuales, Manuales largos y etiquetada c, desarrollo, hacking, informatica, manual, programacion, software.
Guarda el enlace permanente.

3 respuestas a Manual de programación en C: Arrays.

Pingback: Problema en C y Cygw in

Jonathan dijo:
31 enero, 2013 en 8:23 pm

Buenas tardes,
No se si la página sigue vigente o ya la dejaron. De todas formas aquí va mi comentario, si llega bien y si no también. Antes de
nada quiero dejar claro que soy muy novato, toque este tema en la uni, pero ya no me acuerdo mucho. ¿Los include por qué no
los pones, en este caso no es necesario?, ¿las definiciones y el para que sirve cada comando donde las puedo ver? veo printf
(que deduzco que es mostrar en pantalla) y scanf (que deduzco que es introducir dato), pero %i y esas cosillas se me escapan.
Sugiero humildemente poner un comentario explicativo por cada línea de comando (se que es un coñazo) para que se entienda
todo a la perfección.

Un saludo y perdona las molestias.


Responder

theneowriter dijo:
31 enero, 2013 en 10:59 pm

Este blog lo llevo (llevaba) yo solo. Es cierto que ya no pongo nada porque lamentablemente no tengo tiempo, pero
los comentarios me llegan al correo y sí los veo.

http://whitehathacking.wordpress.com/2010/11/27/manual-de-programacion-en-c-arrays/ 4/5
1/4/2014 Manual de programación en C: Arrays. | White-Hat Hacking

Lo que comentas ha quedado explicado en entregas anteriores de estos tutoriales. Aquí tienes el índice:
http://whitehathacking.wordpress.com/2010/10/29/manual-de-programacion-en-c-tipos-de-datos-variables/
Concretamente lo del printf se explica en la parte de variables:
http://whitehathacking.wordpress.com/2010/10/29/manual-de-programacion-en-c-tipos-de-datos-variables/
en la sección de Mostrar variables en pantalla, donde se explica cómo usar printf para ello y para qué sirven los %
Con respecto a los include, sí hace falta ponerlos, supongo que la escribirlo pensé que quedaba sobreentendido, o
quizás los navegadores nuevos eliminen ese tipo de lineas que empiezan por #, no lo se… pero sí, los include deben
estar.
Responder

White-Hat Hacking
El tema Twenty Ten Blog de WordPress.com.

http://whitehathacking.wordpress.com/2010/11/27/manual-de-programacion-en-c-arrays/ 5/5

You might also like