Menú principal

viernes, 5 de febrero de 2016

Recorrer un vector con puntero

Hoy os muestro un ejemplo donde podéis ver la estrecha relación que hay entre vectores y punteros. En los vectores al tener los elementos contiguos en memoria podemos acceder a cada uno de ellos solo con incrementar un puntero. El puntero se incrementara automáticamente en en tantos bytes como sea necesario: si tenemos un puntero entero y le aumentamos en una unidad se incrementa en 4 bytes para apuntar al siguiente entero, mientras que si por ejemplo tenemos un puntero double esto supondría un incremento en 8 bytes debido a que este es el tamaño del double.

A continuación os mostraré un ejercicio que consiste en visualizar el vector utilizando un puntero que se incrementa y va apuntando automáticamente al siguiente elemento del vector.

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

int main()
{
    int vector[5]={0,1,2,3,4};
    int *p;
    int i;

    p=&vector[0];//puntero apunte a la dirección del primer elemento del vector

    for(i=0; i<5; i++)
    {
        printf("%d \n\n", *p);
        p++;//El puntero se incrementa para apuntar al siguiente entero
    }
}

4 comentarios:

  1. el puntero se puede incrementar al infinito?

    ResponderEliminar
  2. Si, si defines un loop infinito como for(i=0;i<2;i++){i--}

    ResponderEliminar
  3. Que ocurre si mi array es char y necesito mostrar un int

    ResponderEliminar