[C con Clase] Saludos
Vicent
vginer en gmail.com
Mar Ene 12 17:46:57 CET 2010
2010/1/12 Leonardo Boquillon <lboquillon en gmail.com>
> en mi humilde opinión creo que ya python esta lo suficientemente
> documentado, mm no se es raro ver esto es como ir a un foro del real madrid
> pidiendo que se haga algo del barcelona [?]
>
>
Creí que "Conclase" era un foro sobre fútbol, no sobre el Real Madrid. Pero
es cierto que estoy en el "subforo" sobre C y C++.
En cualquier caso, lanzo una pregunta de novato sobre C++.
Leyendo, he visto dos modos de pasar argumentos por referencia:
(1) void funcion1 ( int ¶metro ) {
... } ;
(2) void funcion1 ( int *parametro ) {
... } ;
En el caso (1), "parametro" es un entero pasado por referencia. En el
cuerpo de la función, debería referirme a él como "parametro", y todos los
cambios que experimente esa variable se verán reflejados en la variable
correspondiente donde esté la llamada a "funcion1". Por ejemplo, podría
llamar a esta función así: funcion(k) ; donde "k" es una variable tipo int,
o bien funcion(*pk), donde "pk" sería un puntero a una variable tipo
"int".
En el caso (2), "parametro" es un puntero a un entero (el puntero es pasado
por valor, no por referencia; pero es una manera de pasar un entero por
referencia). En el cuerpo de la función, debería referirme a ese entero como
"*parametro", y todos los cambios que experimente el valor al que apunta el
puntero "parametro" se verán reflejados en la variable correspondiente donde
esté la llamada a "funcion1". Por ejemplo, podría llamar a esta función
así: funcion(&k) ; donde "k" es una variable tipo int, o bien funcion(pk),
donde "pk" sería un puntero a una variable tipo "int".
También me ha parecido leer que la sintaxis (1) es incorrecta en C, pero
correcta en C++.
¿Cuál de las dos formas es la más usual para pasar parámetros por referencia
a una función? O bien, ¿en qué casos es recomendable/preferida cada una?
¿Son equivalentes, o hay alguna diferencia que se me escapa?
Gracias de antemano por vuestras respuestas.
Un saludo.
--
Vicent
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100112/dd489280/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 326.gif
Type: image/gif
Size: 285 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100112/dd489280/attachment.gif>
Más información sobre la lista de distribución Cconclase