//Primero declaramos un array de enteros
//de dimensión diez (10)
int array[10];
//Luego creamos un puntero a un entero
int * pArray;
//y asignamos la dirección del array al puntero
pArray = array;
Note se que cuando asignamos la dirección lo hacemos directamente, sin necesidad de usar el operador & (dirección de). Esto pasa, porque en realidad 'array' es un puntero como 'pArray'.
Ahora si queremos acceder a los subíndices, podemos hacerlo por medio de 'pArray' y de 'array'. Miremos el siguiente ejemplo:
//En este ejemplo estamos inicializando
//los diez elementos de 'array' en cero
for(int i = 0; i < 10; i++)
{
pArray[i] = 0;
}
Ahora lo importante. ¿Cómo pasar arreglos por referencia en C++? Como ya vimos, en realidad los arreglos son punteros al primer subíndice de un array. Entonces para pasar un array por referencia, resulta ser sencillo. Observemos el siguiente prototipo:
void inicializar(int filas, int columnas,
int matriz[filas][columnas]);
Lo que hacemos aquí es, primero pasar las dimensiones de la matriz, y luego la declaramos. El orden aquí es importante, ya que si declaramos el array sin conocer sus dimensiones, el compilador arrojara un error, pues no sabrá como tiene que dimensionar el arreglo. Ahora, para llamar la función simplemente hacemos lo siguiente:
//llamada a la función 'inicializar'
inicializar(filas, columnas, matriz);
donde 'matriz' es una matriz de dimenciones [filas][columnas].
buen aporte :)
ResponderEliminar