C++ Llamada por referencia

Funciones en C++

Para pasar parámetros a una función mediantellamada por referencia, se copia la dirección de la referencia en el parámetro formal. Dentro de la función, esta referencia se utiliza para acceder a los argumentos reales usados en la llamada. Esto significa que modificar el parámetro formal afecta al argumento real.

Al pasar valores por referencia, la referencia del parámetro se pasa a la función, igual que se pasan otros valores a la función. Por lo tanto, en la siguiente funciónswap()debe declarar los parámetros de la función como tipo de referencia; esta función se utiliza para intercambiar los valores de las dos variables enteras a las que apuntan los parámetros.

// 函数定义
void swap(int &x, int &y)
{
   int temp;
   temp = x; /* 保存地址 x 的值 */
   x = y;    /* 把 y 赋值给 x */
   y = temp; /* 把 x 赋值给 y  */
  
   return;
}

Ahora, llamemos a la función pasando valores por referenciaswap():

Ejemplos

#include <iostream> using namespace std; // Declaración de función void swap(int &x, int &y); int main () { // Declaración de variables locales int a = 100; int b = 200; cout << "Antes del intercambio, valor de a:" << a << endl; cout << "Antes del intercambio, valor de b:" << b << endl; /*Llamar a la función para intercambiar valores*/ swap(a, b); cout << "Después del intercambio, valor de a:" << a << endl; cout << "Después del intercambio, valor de b:" << b << endl; return 0; } // Definición de función void swap(int &x, int &y) { int temp; temp = x; /*Guardar el valor de la dirección x*/ x = y; /*Asignar y a x*/ y = temp; /*Asignar x a y*/ return; }

Cuando el código anterior se compila y ejecuta, produce los siguientes resultados:

交换前,a 的值: 100
交换前,b 的值: 200
交换后,a 的值: 200
交换后,b 的值: 100

Puntos clave

  1. Definición de referencia: mediante el uso de&símbolo para definir el tipo de referencia, por ejemploint &ref。
  2. Pasar referencias: use el tipo de referencia en la lista de parámetros de la función, de modo que las modificaciones dentro de la función afecten a las variables realmente pasadas.
  3. Evitar la sobrecarga de copia: la llamada por referencia evita la sobrecarga de copia al pasar objetos grandes y mejora la eficiencia.

Escenarios de aplicación de la llamada por referencia

  • Modificar variables externas: como se muestra en el ejemplo anterior, modificar la variable pasada a través de la función.
  • Reducir la sobrecarga: especialmente al pasar objetos grandes o estructuras de datos complejas, la llamada por referencia puede evitar operaciones de copia innecesarias.
  • Optimización del valor de retorno: devolver las variables locales de una función mediante referencia evita la sobrecarga de copia del valor de retorno.

La llamada por referencia es una técnica importante en C++ que puede mejorar la eficiencia y flexibilidad del código. Conocer y dominar la llamada por referencia es de gran ayuda para escribir programas eficientes en C++.

Funciones en C++

Otras extensiones