Professional Documents
Culture Documents
| White-Hat Hacking
White-Hat Hacking
I ntroduzca aquí frase transcendente
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.
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:
Como vemos esto puede llegar a resultar un verdadero coñazo, y esto cuando son 31 variables, ¿y si necesitamos
1000 variables?
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;
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.
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];
[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
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.
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
1.
Trust Rating
About this Ad
About this Ad
92%
whitehathacking.wordpress.com
Seguir
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.
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.
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