Menú principal

sábado, 9 de enero de 2016

Vectores (arrays) en C

Los vectores son un tipo de dato compuesto formado por datos simples de un mismo tipo (int, char...) refiriéndome a esos datos con una variable. Para acceder a un dato en concreto en esa coleccion emplearemos un indice. Al primer elemento le corresponde el índice 0, al segundo el 1 y así sucesivamente.

El vector en memoria tendría la siguiente estructura. Observad que los elementos del vector están ocupando posiciones contiguas en la memoria.



Los vectores y los punteros están muy relacionados. De hecho, el nombre del vector es un puntero al inicio de este. Esto  quiere decir que si escribimos en el programa nota[0] o *nota es lo mismo: el contenido de la primera celda de memoria (nota[0]) donde empieza el vector.

Supongamos que quiero ver el cuarto elemento, en este caso habría que poner:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    float notas[50]

    printf("El cuarto elemento contiene el valor de: %f", notas[3]);
}

Ya que no hemos inicializado el vector todos los elementos tendrán valores indeterminado.

Para introducir números en ese vector utilizaríamos un bucle for. Aprovecho para enseñaros el #define que sirve para establecer constantes simbólicas, en este programa la llamaremos NUM_NOTAS y al lado de esta podremos el numero de notas que queramos que constituyan el vector de notas. El define resulta útil para que los programas sean más legibles y más fáciles de modificar

#include <stdio.h>
#include <stdlib.h>
#define NUM_NOTAS 5

int main()
{
    float notas[NUM_NOTAS];
    int i;

    for(i=0; i<NUM_NOTAS; i++)
    {
        printf("Intro nota numero %d: ", i);
        scanf("%f", &notas[i]);
    }


    printf("El cuarto elemento contiene el valor de: %f", notas[3]);
}


No hay comentarios:

Publicar un comentario