06.05.2013 Views

CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!