Paso de parámetros en funciones

 

Paso de parámetros por valor y por referencia en C++

En C++, existen dos formas principales de pasar parámetros a las funciones: por valor y por referencia. La forma en que se pasa un parámetro determina cómo se comporta la variable dentro de la función y cómo afecta a la variable original.

Paso por valor:

  • Cuando se pasa un parámetro por valor, se crea una copia del valor del argumento original dentro de la función.
  • Cualquier modificación realizada en la copia del parámetro dentro de la función no afecta al valor de la variable original.
  • Este método es útil cuando no se desea que la función modifique la variable original.

Ejemplo:

C++
void incrementarValor(int valor) {
  valor++; // Se modifica la copia del valor
}

int main() {
  int x = 5;
  incrementarValor(x);
  std::cout << "Valor de x: " << x << std::endl; // Imprime 5, la variable original no se modifica
  return 0;
}

Paso por referencia:

  • Cuando se pasa un parámetro por referencia, se pasa la dirección de memoria de la variable original a la función.
  • Cualquier modificación realizada en la variable dentro de la función afecta directamente al valor de la variable original.
  • Este método es útil cuando se necesita que la función modifique la variable original o cuando se trabaja con objetos grandes para evitar la copia.

Ejemplo:

C++
void intercambiarValores(int& a, int& b) {
  int aux = a;
  a = b;
  b = aux;
}

int main() {
  int x = 5, y = 10;
  intercambiarValores(x, y);
  std::cout << "Valor de x: " << x << std::endl; // Imprime 10
  std::cout << "Valor de y: " << y << std::endl; // Imprime 5
  return 0;
}

Tabla comparativa:

CaracterísticaPaso por valorPaso por referencia
Se crea una copia del valorNo
Se modifica la variable originalNo
Eficiencia para objetos grandesMenos eficienteMás eficiente
Se utiliza para evitar modificacionesNo
Se utiliza para trabajar con objetos grandesNo

En resumen:

  • El paso por valor se utiliza cuando no se desea que la función modifique la variable original o cuando se trabaja con tipos de datos simples.
  • El paso por referencia se utiliza cuando se necesita que la función modifique la variable original o cuando se trabaja con objetos grandes.


Comentarios

Entradas más populares de este blog

Generación de números aleatorios

STL de C++