Beruflich Dokumente
Kultur Dokumente
ARREGLOS Y ESTRUCTURAS
Objetivos
Antecedentes
Introducción
Arreglo
Un arreglo es un conjunto de datos del mismo tipo, que están organizados secuencialmente
en memoria principal, y se hace referencia a dichos datos a través del nombre del arreglo.
Cada uno de los componentes del arreglo es llamado elemento, y cada elemento ocupa una
dirección contigua en memoria.
int arr1[5];
Con esta declaración indicamos que a la variable arr1 le asigne un espacio en memoria, de
tal forma que se puedan almacenar 5 elementos de tipo int. Por ejemplo, si en un cierto
equipo, el tipo int es de tamaño de 2 bytes, quiere decir que la dirección de cada elemento,
suponiendo que empieza en FF00, sería:
arr1[0] à FF00
arr1[1] à FF02
arr1[2] à FF04
arr1[3] à FF06
arr1[4] à FF08
Con esto se puede observar que las direcciones son contiguas y dejan 2 bytes para
almacenar correctamente a un int.
Cabe hacer notar que el arreglo emplea subíndices para hacer referencia a cada elemento de
éste. Así, el primer elemento del arreglo está asociado con el subíndice 0, el segundo con el
1 y así sucesivamente hasta el subíndice n-1 donde n es el número de elementos del arreglo
int arr2[3][2];
arr2[0][0] à FF0A
arr2[0][1] à FF0C
arr2[1][0] à FF0E
arr2[1][1] à FF10
arr2[2][0] à FF12
arr2[2][1] à FF14
Se puede observar que las localidades de memoria se asignan por renglones, es decir, se
colocan los 2 elementos del renglón 0 de manera consecutiva, después los 2 elementos del
renglón 1 y así sucesivamente.
Ejemplo 1. Leer los elementos de una matriz cuadrada de orden 4 y desplegarlos en pantalla.
#include<stdio.h>
void main(){
int M[4][4];
int i,j;
/* Ciclo para la lectura por renglón*/
for(i=0;i<4;i++)
for(j=0;j<4;j++){
printf(“Dame el elemento %d,%d: “,i,j);
scanf(“%d”,&M[i][j]);
}
printf(“\n”);
/*Ciclo para la escritura de la matriz en pantalla*/
for(i=0;i<4;i++){
for(j=0;j<4;j++)
printf(“%d\t”,M[i][j]);
printf(“\n”);/*nueva línea para imprimir el siguiente renglón*/
}
}
Estructuras
Una estructura es un conjunto de datos a los que se hace referencia a través de un mismo
nombre. A diferencia de un arreglo, una estructura puede tener elementos de distintos tipos,
por ejemplo de tipo int, float, double, char, etc.
struct{
tipo1 nom_var11, nom_var12,…;
tipo2 nom_var21, nom_var22,…;
.
.
tipon nom_varn1, nom_varn2,…;
}nombre_variable_estructura ;
#include<stdio.h>
void main(){
/*Declaramos la estructura con el nombre alumno*/
struct{
char nombre[50];
int edad;
}alumno;
En este ejemplo se observa que para referirse a un dato de la estructura se hace uso del
nombre de éste, anteponiéndole el nombre de la estructura: alumno.nombre y alumno.edad.
Problemas Propuestos