[Tutorial] Impara a programmare app per iPhone, iPad e Mac con YourLifeUpdated! Parte 7: Passare i parametri alle funzioni, per valore o per riferimento?
Vuoi diventare uno sviluppatore Apple? Con YourLifeUpdated potrai apprendere le basi della programmazione in Objective-C e il design pattern MVC! Parte 7: Passare i parametri alle funzioni, per valore...
Vuoi diventare uno sviluppatore Apple? Con YourLifeUpdated potrai apprendere le basi della programmazione in Objective-C e il design pattern MVC! Parte 7: Passare i parametri alle funzioni, per valore o per riferimento?
Amici di YourLifeUpdated.net benvenuti alla settima lezione della nostra nuova iniziativa e bensì " Impara a programmare app per iPhone, iPad e Mac con YourLifeUpdated! ".
Abbiamo precedente parlato delle variabili, delle operazioni matematiche e come dichiarare una funzione. Manca un'argomento molto importante, fondamentale in programmazione e cioè come passare i parametri alle funzioni.
I puntatori
Le variabili di tipo puntatore contengono l'indirizzo di altre variabili, oggetti e funzioni. Si dichiarano con la seguente notazione:
int *puntatore;Notate che va inserito un asterisco tra il tipo ed il nome della variabile, sono valide anche le seguenti dichiarazioni:
int* puntatore;
int * puntatore;
Come si ottiene l'indirizzo di memoria una variabile?
Per ottenere l'indirizzo di memoria di una variabile basta anteporre alla variabile l'operatore "&" ed assegnare il valore alla rispettiva variabile, come nell'esempio:
int a=2; int *puntatore=&a;Come sono organizzati i dati in memoria? Una dichiarazione del genere:
int a=2;In memoria verrà rappresentata come 1956875 2, dove il primo valore è l'indirizzo e il secondo è il valore. Per afferrare il concetto effettuate le seguenti prove, utilizzate printf per visualizzare il contenuto delle variabili:
printf("%d", a); // verrà stampato 2 printf("%d", &a); // verrà stampato l'indirizzo di a 1956875 printf("%d", puntatore); // verrà stampato l'indirizzo di a 1956875 printf("%d", *puntatore); // verrà stampato 2 printf("%d", &puntatore); // verrà stampato l'indirizzo del puntatore 1946985Un esercizio? =D Scrivete una funzione che riceve un puntatore ad intero e ne stampa il valore! Passare i parametri ad una funzione per valore o per riferimento? Passare i parametri ad una funzione per valore significa appunto passare il valore della variabile mentre passare i parametri ad una funzione per riferimento significa appunto passare alla funzione l'indirizzo delle variabili. Esempio: Supponiamo di avere due variabili a e b con valori rispettivamente 2 e 3
void func(int a, int b){ a=b; printf("%d", a); } printf("%d", a);Con prima chiamata a printf verrà visualizzato il nuovo valore di a e cioè 3, mentre con la seconda chiamata (notate che è esterna alla funzione) verrà visualizzato il vecchio valore di a. Quando si passano i parametri ad una funzione per valore questi verranno modificati solo nell'ambito del corpo della funzione mentre la modifica non avrà effetto all'esterno della funzione. Se invece passiamo i parametri ad una funzione per riferimento lavoreremo con gli indirizzi di memoria e quindi avremo la possibilità di modificare il valore delle variabili. Esempio: Supponiamo di avere due variabili a e b con valori rispettivamente 2 e 3
void func(int *a, int *b){ *a=*b; printf("%d", *a); } printf("%d", *a);Se eseguite il programma noterete che in entrambe le chiamate a printf verrà visualizzato il valore 3! Infatti la funzione fune riceve sta volta due puntatori a interi e cioè gli indirizzi di memoria di a e b, ci serviamo quindi dell'operatore "*" per accedere ai valori delle variabili! Esercizio "per casa" ! =D Scrivere una funzione swap che riceve due puntatori ad intero e ne scambia i valori. Non preoccupatevi, ecco la soluzione! main Alla prossima!
Sai che siamo anche su WhatsApp? Iscriviti subito al canale di YourLifeUpdated per restare sempre informato su guide e notizie tecnologiche
HAI BISOGNO DI ASSISTENZA? Unisciti al nostro Gruppo di supporto su Telegram - CLICCA QUI
NON HAI TELEGRAM? UNISCITI AL NOSTRO GRUPPO FACEBOOK Unisciti al nostro Gruppo di supporto su Facebook - CLICCA QUI
Aspetta.. Prima di lasciare la pagina leggi qui
YOURLIFEUPDATED È STATO SELEZIONATO DAL NUOVO SERVIZIO DI GOOGLE NEWS: se vuoi essere sempre aggiornato sulle nostre notizie SEGUICI QUI
YOURLIFEUPDATED HA UN CANALE TELEGRAM CHE RACCOGLIE TUTTE LE ULTIME NOTIZIE: se vuoi essere sempre aggiornato SEGUICI QUI
YOURLIFEUPDATED HA UN CANALE YOUTUBE CON OLTRE 10.000 ISCRITTI, UNISCITI ANCHE TU: se vuoi essere sempre aggiornato SEGUICI QUI
NON HAI ANCORA AMAZON PRIME? Attivalo gratis ORA - CLICCA QUI
CERCHI LE MIGLIORI OFFERTE DI AMAZON? Scoprile QUI sempre aggiornate