[C con Clase] RE: Cómo se pasa un arreglo por parámetro?

RFLGRRD JRMLLMCY jotmeil1980 en hotmail.com
Lun Mayo 5 21:02:14 CEST 2008


Saludos, 
 
En C++, un arreglo se pasa a una función de la siguiente manera:
 
void nombreFuncion( int [], const int ); //prototipo de funciones
void pasoPorValor( int );
 
int main(){
 
const int tamArreglo = 10;
int arreglo[ tamArreglo ] = { 0 }; 
 
nombreFuncion( arreglo, tamArreglo ); //llamada a la funcion. Pasa todo el arreglo por referencia. "arreglo"pasoPorValor( arreglo[ 1 ] ); //llamada a la funcion. Pasa valor de arreglo. "1"
return 0;
 
}
 
 
void nombreFuncion( int a[], const int tam ){ //implementacion de la funcion
 
for ( int i = 0; i < tam; i++ )
a[ i ] += i;
 
}
 
void pasoPorValor( int valor ){
valor++;
}
 
Para hacer mas explicito el código, cuando se pasa un arreglo, es conveniente pasar tambien la dimención del sus subindices como constantes, asi se puede controlar al compilar el codigo que la funcion no modifique el valor del subindice para evitar errores. Si la funcion no deberia modificar el arreglo tambien se aplica lo anterior es decir pasarlo como constante.
 
En el ejemplo de arriba se pasa un arreglo por referencia, es decir el identificador del arreglo "arreglo" es un puntero. Tambien es posible pasar los datos por valor, pero no es recomendable si se trata de grandes cantidades de datos.
 
Si necesitas trabajar con grandes volumenes de datos en arreglos, lo mejor es utilizar punteros. Espero te sea de utilidad...
 
> Date: Wed, 30 Apr 2008 11:23:31 -0300> From: poguijuaz en gmail.com> To: cconclase en listas.conclase.net> Subject: Re: [C con Clase] Cómo se pasa un arreglo por parámetro?> > David Reza escribió:> > Disculpen la pregunta, tal vez sea muy tonta pero, ¿cómo se pasan los > > arreglos por parámetro y cómo sería el prototipo de una función que > > tiene como parámetro un arreglo?> >> > Yo pienso que sería así:> >> > //Prototipo con un parámetro que recibirá un arreglo> > /tipo/ funcion (/tipo/ []);> >> > //Definición de la función> > /tipo/ funcion (param[])> > {> > cuerpo de la función> > }> >> > //Llamada a la función> > ...> > int arreglo[3];> > ...> > funcion(arreglo[]);> > ..> >> >> > Estoy en lo correcto?> >> > Saludos> >> > ------------------------------------------------------------------------> >> > _______________________________________________> > Lista de correo Cconclase Cconclase en listas.conclase.net> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ> Hola, te recomiendo usar punteros para pasar como parámetro un arreglo.> > salu2> > _______________________________________________> Lista de correo Cconclase Cconclase en listas.conclase.net> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_________________________________________________________________
Connect to the next generation of MSN Messenger 
http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080505/7472cae1/attachment.html>


Más información sobre la lista de distribución Cconclase