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

David Reza l.fix3r.l en gmail.com
Mar Mayo 6 03:35:47 CEST 2008


Steven Davidson escribió:

> Hola David,
>
> David Reza wrote:
> > 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.
> >
>
> Bueno, en realidad ya lo estás pasando por valor (o por copia), ya que
> estás pasando la dirección de memoria; es decir, copias la dirección de
> memoria. Ahora bien, supongo que estás preguntando la forma de copiar
> los elementos del array. Directamente, no podríamos, pero sí podríamos
> crear una estructura y pasar ésta por copia. Por ejemplo,
>
> struct array
> {
>   int lista[10];
> };
>
> int func( array stLista );
>
> Esta "técnica" también te sirve para retornar un array, indirectamente,
> claro está. Por ejemplo,
>
> array g( array stLista );


Ya me confundí un poco. Al escribir:

//Prototipo función
tipo funcion(tipo []);

//Main
int main
{
    ....
    funcion(arreglo);
    ...
}

//Declaración función
tipo funcion(tipo identificador[])
{
    ...
}

Estoy pasando el arreglo por valor? Si es así, por qué?

Puedo pasar un solo elemento del array si en el main utilizo la función así:
?

...
funcion(arreglo[56]);
....

Y para pasar un arreglo  por referencia se utilizarían los punteros?

Disculpen la molestia.

Saludos
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080505/bdf45550/attachment.html>


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