• Lunes 18 de Noviembre de 2024, 18:29

Autor Tema:  Parametros Por Referencia  (Leído 7162 veces)

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Parametros Por Referencia
« en: Sábado 30 de Septiembre de 2006, 14:55 »
0
Hola, cuando paso algun parametro por referencia solo se puede pasar una variable?, no es posible pasar por referencia un array o vector no?

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #1 en: Sábado 30 de Septiembre de 2006, 15:56 »
0
:D  :D  :D

De hecho puedes pasar toda una estructura completa con vectores arrays y variables en su interior ...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #2 en: Sábado 30 de Septiembre de 2006, 16:13 »
0
claro, es una solucion posible, pero me referia a si es posible usando tipos primitivos.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #3 en: Sábado 30 de Septiembre de 2006, 16:45 »
0
Cuando pasas algo por referencia usas su direccion de memoria ... dan lo mismo el tamaño y el tipo ya que lo que pasas es su comienzo.

http://www.conclase.net/c/curso/index.php?cap=015

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #4 en: Sábado 30 de Septiembre de 2006, 17:28 »
0
A lo que me referia es que si paso un vector por referencia estoy pasando la direccion del primer elemento del mismo, o sea, solo la variable con que recibo el vector seria un alias del pirmer elemento del mismo, no?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #5 en: Sábado 30 de Septiembre de 2006, 17:50 »
0
¿Con vector te referis a un array? Tal vez si explicas mejor lo que queres hacer sea mas simple ... parece un caso que yo resolveria usando un puntero ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #6 en: Sábado 30 de Septiembre de 2006, 18:10 »
0
creo que lo que buscas es la correspondencia entre un array y un puntero...
http://www.conclase.net/c/curso/index.php?cap=012b
Código: Text
  1.  
  2. int vector[10];
  3. int *puntero;
  4.  
  5. puntero = vector; /* Equivale a puntero = &vector[0];
  6.   esto se lee como "dirección del primer de vector" */
  7. *puntero++; /* Equivale a vector[0]++; */
  8. puntero++; /* puntero equivale a &vector[1] */
  9.  
  10.  

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #7 en: Sábado 30 de Septiembre de 2006, 21:32 »
0
A lo que me referia es por ej si puedo pasar un string por referencia sin meterlo dentro de una estructura. En este caso seria como puedo pasar el array s a la funcion fecha por referencia?
Código: Text
  1. #include<iostream>
  2.  
  3. void fecha(char *s);
  4.  
  5. void main() {
  6.   char s[15];
  7.  
  8.   cout << "Ingrese la fecha:";
  9.   cin.getline(s, 15,'\n');
  10.  
  11.   fecha(s);
  12.  
  13.  
  14.   cout << endl << "Presione una tecla para salir";
  15.   cin.ignore();
  16.   cin.get();
  17. }
  18.  
  19.  
  20. void fecha(char *s) {
  21.   cout << endl << "La fecha es:" << s;
  22. }
  23.  

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #8 en: Sábado 30 de Septiembre de 2006, 21:57 »
0
La verdad es que no entiendo que queres hacer realmente ... no le veo sentido a lo que intentas ... mas bien parece que queres usar una carcateristica de C++ para probar ... una referencia es un doble puntero ... asi de simple.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Parametros Por Referencia
« Respuesta #9 en: Domingo 1 de Octubre de 2006, 00:09 »
0
Cita de: "AnioN"
A lo que me referia es por ej si puedo pasar un string por referencia sin meterlo dentro de una estructura.
Te referirás a pasarlo por valor ¿no?, las cadenas "al estilo C" se pasan siempre por referencia. El meterlas dentro de una estructura es el único "truco" que permite pasarlas por valor. Ahora, los arrays son lo mismo que las cadenas "al estilo C", recuerda que una cadena de este tipo es simplemente un array de caracteres, por lo tanto, aplica lo mismo para arrays (siempre se pasan por referencia).

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #10 en: Domingo 1 de Octubre de 2006, 09:04 »
0
:D  :D

Yo no veo problema alguno en pasarlo por medio de una estructura...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


ratzielx

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #11 en: Miércoles 4 de Octubre de 2006, 16:35 »
0
BUENO no es necessario porq q un aray ya esta pasado por referencia osea q no tines q poner el operador & ademas es un puntero al primer elemento bueno eso en resumen

geobeid

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: Parametros Por Referencia
« Respuesta #12 en: Viernes 6 de Octubre de 2006, 06:44 »
0
Citar
Hola, cuando paso algun parametro por referencia solo se puede pasar una variable?, no es posible pasar por referencia un array o vector no?

NO QUIERO QUEDAR COMO UN FANFARRON AL ENTRAR EN TECNISISMOS PERO VOY A HACER CORRECCIONES PARA QUE SE ENTIENDA MEJO.

CUANDO UNA PASA ALGO POR REFERENCIA EN REALIDAD PASA UN PUNTERO A LA DIRECCION DE MEMORIA DE LO QUE "PASA".

PODES PASAR CUALQUIER COSA POR REFERENCIA PERO TENE EN CUENTA QUE NO SE COPIAN LOS DATOS SIN QUE SON LOS MISMOS DATOS LOS QUE MANEJAS.

CUANDO UNO PASA UN ARREGLO SIEMPRE ESTA HACIENDO UN PASAJE POR REFERENCIA YA QUE EL NOMBRE DEL ARREGLO NO ES MAS QUE EL PUNTERO AL PRIMER ELEMENTO DE EL ARREGLO.

SI PASAS UN VECTOR DE STL SE COPIA PERO EL CONSTRUCTOR POR COPIA SOLO COPIA EL HEADER DEL VECTOR Y A LA LARGA ES LO MISMO PASARLO POR REFERENCIA O POR COPIA.

PODES PASAR LO QUE SE TE CANTE POR REFERENCIA, INCLUSO OBJETOS DE TU PROPIA INVENCION.

ESPERO QUE SIRVA.
BYTES  :kicking:
[size=109]
SI QUERES ENCONTRAR A JESÚS GOOGLEALO
[/size]