Los arreglos son estructuras de datos, que se usan generalmente para el almacenamiento en memoria de datos de forma continua.
Significa que siempre voy a poder estar seguro en que posición de la memoria se almacena. En las variables comunes nada nos asegura que entre dos variables se almacena información basura que no nos sirva a nosotros. Pero en cambio en los arreglos no va existir datos en medio de ellos, es decir, se pueden almacenar de forma continua garantizando que se pueda acceder a ellas.
Ejemplo:
#include <iostream>
using *namespace* std;
*int* main()
{
*char* Corbatas[5]; //A dif de una variable normal se debe colocar corchetes, y asignarle un tamaño. Se crean 5 celdas.
Corbatas[0] = 'v';
Corbatas[1] = 'n';
Corbatas[2] = 'p';
Corbatas[3] = 'r';
Corbatas[4] = Corbatas[2];
// Corbatas[4] = 'f'; //Si yo quisiera decir que la corbata 4 es igual al valor de la corbata 2. Se debe hacer así:
//Se puede acceder de forma individual a cada uno de los índices.
// En c++ se puede agregar otra dirección de mermoria, adicional pero eso causara que nuestro programa o sistema operativo flahee. Hay que tener cuidado con los límites de los arreglos. Ejemplo:
// Corbatas[5] = '#';
cout << Corbatas[0] << endl;
cout << Corbatas[1] << endl;
cout << Corbatas[2] << endl;
cout << Corbatas[3] << endl;
cout << Corbatas[4] << endl;
return 0;
}
Ejemplo 2 con Strings
#include <iostream>
using namespace std;
int main()
{
int index = 0; //Variable entero
cin >> index; //Para intoducir datos
string Names[4] = { "Astrix", "Idiafix", "Obelix", "Panoramix"}; //Cada nombre ocupa una posición en la memoria.Se esta creando un arreglo de cuatro, empezando de 0.
string CurrentName = Names[index]; //Posición
cout << CurrentName << endl; //Se puede introducir un dato y elegir que nombre va a selccionar el currentname, dependiendo del número que elija.
//Si eligo 3, deberia imprimir Panoramix, y si se introduzco un que excede el tamaño de mi arreglo, por ej: 16, el programa flasheara y se trabará. Y el sist operativo avisa que de que se intridujo un dato incorrecto.
return 0;
}