Acerca de las variables locales y las variables globales en C y C ++

Primero mira un ejemplo

#include <iostream>
using namespace std;

int change(int r)
{
    r++;
}

int main()
{
    int x = 5;
    change(x);
    cout << "x = " << x << endl;
    return 0;
}

 Después de pasar x a la función de cambio, y luego generar el valor de x, no cambiará, porque la x pasada a la función de cambio solo es equivalente a una copia de la x original en la función principal, y la salida final sigue siendo 5;

 

Si realmente desea cambiar el valor de x, debe usar una referencia en C ++, es decir, agregar un ampersand antes del parámetro formal pasado en la función de cambio:

#include <iostream>
using namespace std;

int change(int &r)
{
    r++;
}

int main()
{
    int x = 5;
    change(x);
    cout << "x = " << x << endl;
    return 0;
}

 

   

Por supuesto, si usa la sintaxis C simple (c simple) para lograrlo, necesita usar punteros, puede obtener el mismo efecto

#include <iostream>
using namespace std;
    
void change(int *r)
{
    ++(*r);
}

int main()
{
    int x = 5;
    int *p = &x;
    printf("%d\n",x);
    change(p);
    printf("%d\n",x);
    return 0;
}

 

Entonces, si desea definir una variable de referencia, ¿cómo debe implementarse?

el código se muestra a continuación:

#include <iostream>
using namespace std;

int a = 5,b = 6;
int *p = &a;
int *q = &b;
    
void change(int *&r)
{
    r = q;
}

int main()
{
    cout << *p << endl;
    change(p);
    cout << *p << endl;
    return 0;
}

 

 

 

Supongo que te gusta

Origin blog.csdn.net/smallrain6/article/details/107387773
Recomendado
Clasificación