|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
[C] Passaggio di parametri nelle funzioni
Salve,
volevo chiedervi, in C il passaggio dei parametri nelle funzioni è solo per valore ed in realtà il passaggio per riferimento è solo simulato è esatto? ed in C++? (ed in Java visto che ci sono? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
In C il passaggio per riferimento non esiste.
Passi per valore o per indirizzo (tramite un puntatore). |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Io mi trovo meglio senza fare distinzioni, per me è sempre per valore.
Nel C viene sempre passato il valore dell'espressione che fornisci come argomento. Per fare un esempio in C: Codice:
int a=4;
someFun(a) //a contiene 4 quindi passo 4
int* b=&a;
someFun2(b); //b contiene l'indirizzo di a, quindi passo l'indirizzo di a
someFun3(&b); //&b è l'indirizzo di b, quindi passo l'indirizzo di b
...
struct example { int a; int b; };
struct example x;
x.a = 2;
x.b = 5;
someFun4(x); //x contiene i valori 2 e 5, quindi passo 2 e 5 (l'intera struttura viene copiata e passata)
In C++ è presente anche il passaggio per riferimento che in sostanza differisce dal passaggio per valore perché ciò che viene passato effettivamente dipende anche da come è dichiarata la funzione/metodo che si va a chiamare. In pratica dato il seguente codice: Codice:
int a = 4; someFun(a); Codice:
void someFun(int x); Codice:
void someFun(int& x); |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:53.


















