Sobre variáveis locais e variáveis globais em C e C ++

Primeiro olhe para um exemplo

#include <iostream>
using namespace std;

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

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

 Depois de passar x para a função de mudança e, em seguida, emitir o valor de x, ele não mudará, porque o x passado para a função de mudança é apenas equivalente a uma cópia do x original na função principal, e a saída final ainda é 5;

 

Se você realmente deseja alterar o valor de x, deve usar uma referência em C ++, ou seja, adicionar um "e" comercial antes do parâmetro formal passado na função de alteração:

#include <iostream>
using namespace std;

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

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

 

   

Claro, se você usar a sintaxe C simples (c simples) para conseguir, você precisa usar ponteiros, você pode obter o mesmo efeito

#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;
}

 

Portanto, se você deseja definir uma variável de referência, como ela deve ser implementada?

código mostrado abaixo:

#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;
}

 

 

 

Acho que você gosta

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