CONTENIDO DE LA LECCIÓN 18
CONTENIDO DE LA LECCIÓN 18 CONTENIDO DE LA LECCIÓN 18
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
- Page 1 and 2: MIGUEL Á. TOLEDO MARTÍNEZ CONTENI
- Page 3 and 4: MIGUEL Á. TOLEDO MARTÍNEZ LECCIÓ
- Page 5 and 6: MIGUEL Á. TOLEDO MARTÍNEZ ELEMENT
- Page 7 and 8: MIGUEL Á. TOLEDO MARTÍNEZ Con las
- Page 9 and 10: MIGUEL Á. TOLEDO MARTÍNEZ del arr
- Page 11 and 12: MIGUEL Á. TOLEDO MARTÍNEZ // MUES
- Page 13 and 14: MIGUEL Á. TOLEDO MARTÍNEZ que exp
- Page 15 and 16: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 17 and 18: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 19: MIGUEL Á. TOLEDO MARTÍNEZ void ma
- Page 23 and 24: MIGUEL Á. TOLEDO MARTÍNEZ void pa
- Page 25 and 26: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 27 and 28: MIGUEL Á. TOLEDO MARTÍNEZ int bus
- Page 29 and 30: MIGUEL Á. TOLEDO MARTÍNEZ El cuer
- Page 31 and 32: MIGUEL Á. TOLEDO MARTÍNEZ /******
- Page 33 and 34: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 35 and 36: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 37 and 38: MIGUEL Á. TOLEDO MARTÍNEZ /* El s
- Page 39 and 40: MIGUEL Á. TOLEDO MARTÍNEZ escribi
- Page 41 and 42: MIGUEL Á. TOLEDO MARTÍNEZ /* El s
- Page 43 and 44: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 45 and 46: MIGUEL Á. TOLEDO MARTÍNEZ SOLUCI
- Page 47 and 48: MIGUEL Á. TOLEDO MARTÍNEZ // Busc
- Page 49 and 50: MIGUEL Á. TOLEDO MARTÍNEZ Paso 1
- Page 51 and 52: MIGUEL Á. TOLEDO MARTÍNEZ { j = i
- Page 53 and 54: MIGUEL Á. TOLEDO MARTÍNEZ un tama
- Page 55 and 56: MIGUEL Á. TOLEDO MARTÍNEZ necesit
- Page 57 and 58: MIGUEL Á. TOLEDO MARTÍNEZ { for (
- Page 59 and 60: MIGUEL Á. TOLEDO MARTÍNEZ // Comp
- Page 61 and 62: MIGUEL Á. TOLEDO MARTÍNEZ INICIAC
- Page 63 and 64: MIGUEL Á. TOLEDO MARTÍNEZ Esta ve
- Page 65 and 66: MIGUEL Á. TOLEDO MARTÍNEZ • Los
- Page 67 and 68: MIGUEL Á. TOLEDO MARTÍNEZ Es posi
- Page 69 and 70: MIGUEL Á. TOLEDO MARTÍNEZ p[100];
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