Dubbi su restituzioni di valori in funzioni

di il
2 risposte

Dubbi su restituzioni di valori in funzioni

Zalve a tutti.
Ho dei dubbi sulla restituzione di valori in funzioni.

int & f(int& a, int*p){*p=a; return *(p+1);}

Quale è lo scopo di quell' "int &" nell'economia della funzione?
Se avessi messi "int *" o semplicemente "int" cosa avrei detto alla funzione di restituire?

Grazie in anticipo a chi risponde

2 Risposte

  • Re: Dubbi su restituzioni di valori in funzioni

    Ciao Mewster,
    In effetti passare 'a' per indirizzo è inutile perchè 'a' non viene modificato nella funzione. Il fatto di restituire un int& serve solo se lo vuoi assegnare ad un int& altrimenti se lo assegni ad un int puoi scrivere cosi:
    
    int f(int a, int* p)
    {
        *p = a; 
        return *(p + 1);
    }
    
    ...
    
    int h = 3;
    int k[2] = { 5, 7 };
    int n = f(h, k);
    
    alla fine k[0]=3 e n=7;

    Se incece vuoi assegnare il risultato a un int& allora:
    
    int& f(int a, int* p)
    {
        *p = a; 
        return *(p + 1);
    }
    
    ...
    
    int h = 3;
    int k[2] = { 5, 7 };
    int& n = f(a, b);
    n = 100;
    
    alla fine k[0]=3 e k[1]=100

    Puoi fare una cosa simile usando i puntatori.
  • Re: Dubbi su restituzioni di valori in funzioni

    Grazie mille, ora mi studio bene la risposta e se ho altri dubbi scrivo!
Devi accedere o registrarti per scrivere nel forum
2 risposte