6.8.- Paso de arreglos como parámetros


Un arreglo puede pasarse como parámetro a una función. Si tuviera que pasarse por valor un arreglo muy grande, sería un desperdicio de memoria. En el Lenguaje C++ el paso de arreglos se hace por referencia, ya que el nombre del arreglo corresponde a un apuntador al primer elemento del arreglo.

Al pasar un parámetro correspondiente a un arreglo, se pasa la dirección del primer elemento, por lo que la función invocada puede modificar cualquier elemento del arreglo.

El listado 6.11 contiene un programa que maneja una función llamada nputs() , la cual recibe como parámetro un arreglo de caracteres.


 #include <iostream.h>                                     
 #include <conio.h>                                         
 #include <stdio.h>    
 #include <string.h>                                           
  void nputs(char *);                                          
  void main()                                                  
  {                                                            
     char cadena[81];                                          
     clrscr();                                                 
     gotoxy(10,10);                                            
     cout << "ESCRIBA UNA CADENA: "; gets(cadena); gotoxy(10,12); nputs(cadena); getch(); } void nputs(char cad[ ]) { int x="0;" while(cad[x]) { cout << cad[x] ; x++; } } 

Listado 6.11.- Manejo de nputs() con arreglos. En el listado 6.12 se muestra el manejo de la función nputs(), por medio de apuntadores.


 #include <iostream.h>                                     
 #include <conio.h>                                         
 #include <stdio.h>    
 #include <string.h>                                        
                                                               
  void nputs(char *);                                          
                                                               
  void main()                                                  
  {                                                            
     char cadena[81];                                          
     clrscr();                                                 
     gotoxy(10,10);                                            
     cout << "ESCRIBA UNA CADENA: "; gets(cadena); gotoxy(10,12); nputs(cadena); getch(); } void nputs(char *cad) { while(*cad) cout << *cad++ ; } 

Listado 6.12.- Manejo de nputs() con apuntadores.

Página anterior Página siguiente