02-04-2011, 11:35 PM
(Questo messaggio è stato modificato l'ultima volta il: 02-04-2011, 11:37 PM da steve.)
La & indica l'indirizzo della variabile (è un valore esadecimale).
esempio:
Il * indica che è un puntatore, scrivendo:
(così si capisce meglio come funziona un puntatore)
Scrivendo *p dico di darmi (o sovrascrivere) il valore che punta (ovvero il valore di a, 10)
Nella chiamata per valore avviene una cosa del genere: int a = 10; int b = a; (solo scritta tramite funzione).
Creo una copia della variabile a, ma rimangono due variabili differenti... hanno solo lo stesso valore.
esempio:
Codice PHP:
int a = 10;
cout << "la variabile a risiede nell'indirizzo " << &a; // ti uscirà un valore del tipo: 001AF928
Il * indica che è un puntatore, scrivendo:
(così si capisce meglio come funziona un puntatore)
Codice PHP:
int a = 10;
int *p = &a; //puntatore a intero
cout << "la variabile a risiede nell'indirizzo " << &a << enld;
cout << "la variabile p risiede nell'indirizzo " << &p << " ma punta a " << p;
Scrivendo *p dico di darmi (o sovrascrivere) il valore che punta (ovvero il valore di a, 10)
Codice PHP:
int a = 10;
int *p = &a;
cout << "a = " << a << endl;
cout<< "*p = " << *p << endl << endl;
a = 20;
cout << "a = " << a << endl;
cout<< "*p = " << *p << endl << endl;
*p = 30; // dire *p è come dire a... ho dato due nomi alla stessa variabile
cout << "a = " << a << endl;
cout<< "*p = " << *p << endl;
Nella chiamata per valore avviene una cosa del genere: int a = 10; int b = a; (solo scritta tramite funzione).
Creo una copia della variabile a, ma rimangono due variabili differenti... hanno solo lo stesso valore.