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

David Reza l.fix3r.l en gmail.com
Lun Mayo 5 23:26:12 CEST 2008


Muchas gracias por la respuesta. Sólo una última duda, ¿cómo  
pasaría un arreglo por valor?

Ya sé que no es muy conveniente pero sirve de cultura general.

Saludos



El 05/05/2008, a las 02:02 PM, RFLGRRD JRMLLMCY  
<jotmeil1980 en hotmail.com> escribió:

> 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 co 
> nveniente pasar tambien la dimención del sus subindices como constan 
> tes, 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 dec 
> ir 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 pasa 
> n 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 arr 
> eglo.
> >
> > 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
> _______________________________________________
> 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=




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