1. Introducción

Empezaremos con los tipos de datos estructurados, los arrays o Arreglos.
Los arrays o arreglos permiten agrupar datos usando un mismo identificador. Este tipo de datos NO existe en Python. En Python se forma utilizando listas con elementos que son listas.
Todos los elementos de un array son del mismo tipo, y para acceder a cada elemento se usan subíndices. Esta es otra DIFERENCIA con lo que sería Python, aquí en C++ TODOS los elementos de un arreglo son del MISMO TIPO.

Sintaxis:

<tipo> <identificador>[<núm_elemen>][[<núm_elemen>]...];

Los valores para el número de elementos deben ser constantes, y se pueden usar tantas dimensiones como queramos, limitado sólo por la memoria disponible.

Cuando sólo se usa una dimensión se suele hablar de listas o vectores, cuando se usan dos, de tablas o matrices.
Ahora podemos ver que las cadenas de caracteres son un tipo especial de arrays. Se trata en realidad de arrays de una dimensión de objetos de tipo char.
Los subíndices son enteros, y pueden tomar valores desde 0 hasta <número de elementos>-1.
Esto es muy importante, y hay que tener mucho cuidado.

Por ejemplo:

int arreglo[4];


Creará un array con 4 elementos enteros; podremos acceder a los elementos Vector[0] a Vector[3].

Como subíndice podremos usar cualquier expresión entera.
En general C++ no verifica el ámbito de los subíndices. Si declaramos un array de 10 elementos, no obtendremos errores al acceder al elemento 11.

Este es un error frecuente en la programación:


Sin embargo, si asignamos valores a elementos fuera del ámbito declarado, estaremos accediendo a zonas de memoria que pueden pertenecer a otras variables o incluso al código ejecutable de nuestro programa, con consecuencias generalmente desastrosas.

Por ejemplo:

int Tabla[10][10];
char DimensionN[4][15][6][8][11];
...
DimensionN[3][11][0][4][6] = DimensionN[0][12][5][3][1];
Tabla[0][0] += Tabla[9][9];


Cada elemento de Tabla, desde Tabla[0][0] hasta Tabla[9][9] es un entero.
Del mismo modo, cada elemento de Dimensión N es un carácter.

Los Arreglos pueden tener VARIAS dimensiones, en particular para nosotros mas allá de tres dimensiones nos resulta dificil la interpretación.