Anuncios

Bienvenidos sean a este post, hoy repasaremos un poco sobre los arrays.

Anuncios

En este post hablamos superficialmente sobre que son los arrays. En ese momento denominamos que eran una variante de variables que perrmitian almacenar mas de un valor. Pero en realidad, es un conjunto de punteros donde cada valor almacenado apunta a este puntero y nosotros lo recuperamos en base a la posicion que esta relacionada. Repasemos las formas que vimos de declarar y/o definir un array:

int arr[4];
int arr[] = { 1, 2, 3, 4};
Anuncios

Los arrays no son dinamicos y por lo tanto siempre debemos establecer la cantidad de elementos que contendran. En el primer caso, se lo pasamos entre los corchetes. Para el segundo caso, no es necesario porque al pasarle los valores, el compilador lo asignara por nosotros en base a los valores asignados. Veamos otra forma de hacerlo:

int arr[]{1, 2, 3, 4};
Anuncios

En este caso, es una forma alternativa donde no usamos el operador de asignacion. Esto asignara el valor y creara el array pertinente. Ahora vamos a ver como recuperar la informacion de un array y para ello crearemos un pequeño ejemplo:

#include <iostream>

int main()
{
        int arr[5];
        for(int i=0, j = 1; i < 5; i++, j++)
                arr[i] = j;

        for(int i=0; i < 5; i++)
                std::cout << "arr[" << i << "]: " << arr[i] << std::endl;

        return 0;
}
Anuncios

Este es un ejemplo simple donde crearemos un array. Primero lo llenaremos de valores mediante un bucle y desde otro bucle recuperamos esos valores. Esta es la forma tradicional que hemos visto anteriormente y en otros posts anteriores. Tomemos el codigo anterior y realicemos el siguiente cambio:

#include <iostream>

int main()
{
        int arr[5];
        for(int i=0, j = 1; i < 5; i++, j++)
                *(arr + i) = j;

        for(int i=0; i < 5; i++)
                std::cout << "arr[" << i << "]: " << *(arr + i) << std::endl;

        return 0;
}
Anuncios

Solamente cambiamos la forma de manejar las posiciones del array. Anteriormente, mencionamos que los array son un conjunto de punteros donde cada uno almacena la informacion relacionada. Por esta razon al incrementar al array este pasara al siguiente puntero. Volvamos a modificar el codigo anterior de la siguiente manera:

#include <iostream>

int main()
{
        int* arr = new int[5];
        for(int i=0, j = 1; i < 5; i++, j++)
                i[arr] = j;

        for(int i=0; i < 5; i++)
                std::cout << "arr[" << i << "]: " << i[arr] << std::endl;

        return 0;
}
Anuncios

Primero, tenemos otra forma de crear un array. En este caso, tenemos un puntero y mediante new le estableceremos cinco posiciones a partir de este. La siguiente modificacion es como asignar cada posicion. Para ello usamos la posicion en cuestion seguido del conjunto de corchetes y dentro el puntero o array. Si observan en el ejemplo, pasamos el valor encargado de controlar cada vuelta. Por ejemplo, si tomamos el valor inicial de i, lo que estamos haciendo a lo siguiente:

0[arr]
Anuncios

Y donde va el numero, pasaremos cada posicion a asignar o recuperar. En cualquiera de los casos anteriores, si compilan y ejecutan el codigo deben tener la siguiente salida:

$ ./estr
arr[0]: 1
arr[1]: 2
arr[2]: 3
arr[3]: 4
arr[4]: 5
$
Anuncios

Esto que decidi agregar es simplemente un complemento a lo que mencionamos sobre arrays. Asi como tambien esto nos servira cuando hablemos mas profundamente sobre estructura de datos en stl. Aunque ya hemos visto una pequeña introduccion en posts anteriores.

Anuncios

En resumen, hoy hemos visto otro tipo de sintaxis para los arrays, asi como tambien hemos mencionado como son realmente, asi como los conceptos que se aplican para que podamos utilizarlos. Espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donatión

It’s for site maintenance, thanks!

$1.50