C++ I riferimenti C ++ sono alias di variabili esistenti


Esempio

Un riferimento in C ++ è solo un Alias o un altro nome di una variabile. Proprio come la maggior parte di noi può essere indirizzata usando il nome del passaporto e il nickname.

I riferimenti non esistono letteralmente e non occupano memoria. Se stampiamo l'indirizzo della variabile di riferimento, stamperà lo stesso indirizzo di quello della variabile a cui si riferisce.

int main() {
    int i = 10;
    int &j = i;
    
    cout<<&i<<endl;
    cout<<&b<<endl;
    return 0;
}

Nell'esempio sopra, entrambi i cout stamperanno lo stesso indirizzo. La situazione sarà la stessa se prendiamo una variabile come riferimento in una funzione

void func (int &fParam ) {
   cout<<"Address inside function => "<<fParam<<endl;
}

int main() {
    int i = 10;
    cout<<"Address inside Main => "<<&i<<endl;    

    func(i);

    return 0;
}

Anche in questo esempio, entrambi i cout stamperanno lo stesso indirizzo.

Come sappiamo ormai che le C++ References sono solo alias e per la creazione di un alias, dobbiamo avere qualcosa a cui l'Alias ​​può riferirsi.

Questo è il motivo preciso per cui la dichiarazione come questa genera un errore del compilatore

int &i;

Perché, l'alias non si riferisce a nulla.