CONTENIDO DE LA LECCIÓN 18
CONTENIDO DE LA LECCIÓN 18
CONTENIDO DE LA LECCIÓN 18
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MIGUEL Á. TOLEDO MARTÍNEZ<br />
PASO <strong>DE</strong> ARREGLOS Y ELEMENTOS <strong>DE</strong> ARREGLOS A <strong>LA</strong>S FUNCIONES<br />
Es posible pasar un arreglo completo a una función o pasar sólo elementos de un arreglo a<br />
una función. Lo importante de recordar es que para pasar un arreglo completo, deberá pasar la<br />
dirección del arreglo. En C y C++, el nombre del arreglo es la dirección del primer elemento<br />
(índice[0]) del arreglo. Empecemos viendo el encabezado de la función. Éste es el prototipo para<br />
pasar un arreglo unidimensional a una función:<br />
void raro(char arreglo[TAMANO_ARREGLO]);<br />
o lo que es más correcto<br />
void raro(char arreglo[], int tamanoArreglo);<br />
Observe el prototipo, vea que la función no regresa un valor. Hay un parámetro de<br />
caracteres llamado arreglo[TAMANO_ARREGLO] La única serie de corchetes después del<br />
identificador del parámetro implica que el parámetro es un arreglo unidimensional con un<br />
tamaño TAMANO_ARREGLO. Cuando se pasan los arreglos a una función, la función deberá<br />
saber qué tan grande es el arreglo que aceptará. Ahora, el identificador del arreglo hace<br />
referencia a la dirección del arreglo, así el arreglo pasa por referencia a la función. De esta<br />
manera, cualquier operación en el arreglo dentro de la función afectará el contenido original del<br />
arreglo en el programa llamador. Asimismo, dado que el parámetro es la dirección del arreglo, no<br />
se requiere ningún símbolo ampersand, (&), para pasar el arreglo por referencia. De hecho, el<br />
uso de un símbolo ampersand antes del parámetro del arreglo originará un error de compilación.<br />
Después, para llamar esta función y pasar el arreglo, simplemente utilice el siguiente<br />
enunciado:<br />
raro(nombreArreglo);<br />
o lo que es más correcto<br />
raro(nombreArreglo, tamanoArreglo);<br />
Desde luego, esta llamada supone que nombreArreglo es la denominación del arreglo en<br />
el programa llamador. (Recuerde que el identificador del argumento real y el identificador del<br />
parámetro formal pueden ser diferentes.) La llamada a nombreArreglo da referencia de la<br />
dirección del arreglo, de manera que, la dirección del arreglo pasa a la función más que una<br />
copia del arreglo. Así, cualquier operación en el arreglo dentro de la función afectará los<br />
elementos originales del arreglo. Un programa completo es como sigue:<br />
Ejemplo <strong>18</strong>.<strong>18</strong><br />
/* El siguiente programa: PASARRE.CPP, ilustra como se pasa un arreglo a una función. */<br />
#include // Para cin y cout<br />
// <strong>DE</strong>C<strong>LA</strong>RA EL TAMAÑO <strong>DE</strong>L ARREGLO<br />
const int TAMANO_ARREGLO = 3;<br />
ARREGLOS, APUNTADORES Y ESTRUCTURAS – <strong>LECCIÓN</strong> <strong>18</strong> <strong>18</strong>-21