CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18 CONTENIDO DE LA LECCIÓN 18

azul2.bnct.ipn.mx
from azul2.bnct.ipn.mx More from this publisher
06.05.2013 Views

MIGUEL Á. TOLEDO MARTÍNEZ /* El siguiente programa: ESTAUTO.CPP, ilustra el uso de arreglos estáticos y automáticos. */ #include //Para cout y cin void arregloEstatico(void); void arregloAutomatico(void); void main(void) { cout

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

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!