Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: RiCo9297 en 15 Agosto 2016, 16:41 pm



Título: Paso por valor y por referencia
Publicado por: RiCo9297 en 15 Agosto 2016, 16:41 pm
Hola buenas me gustaría saber si alguien tiene unos apuntes o alguna manera de explicar cuando se usa el paso por valor o el paso por referencia ya que no lo comprendo demasiado bien, lo pido para c++ utilizando el & y no el *, muchas gracias.


Título: Re: Paso por valor y por referencia
Publicado por: class_OpenGL en 15 Agosto 2016, 17:05 pm
El paso por referencia se utiliza cuando quieres cambiar el valor de la variable/objecto dentro de la función. Creo que con un ejemplo se entenderá mejor:

Código
  1. #include <iostream>
  2.  
  3. void modificarInt(int &variable);
  4.  
  5. int main() {
  6.    int var = 0;
  7.  
  8.    modificarInt(var);
  9.  
  10.    std::cout << var << std::endl;
  11.  
  12.    return 0;
  13. }
  14.  
  15. void modificarInt(int &variable) {
  16.    variable = 5;
  17. }

Salida en consola de este programa:
Código:
5

Si en este ejemplo no se pasara por referencia, la función no haría nada, porque simplemente le has pasado una copia del entero, mientras que cuando pasas una variable/objeto por referencia, es como si le dijeras a C++ que en la función'modificarInt' use la variable 'var' de la función main, por lo que cuando modificas la variable dentro de la función 'modificarInt', en realidad estás modificando la variable 'var'.

Se podría decir que la variable 'variable' de la función se refiere a la variable 'var' de la función main