[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 o per riferimento?

xcode

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 1946985

Un 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!


Aspetta..Prima di lasciare la pagina leggi qui

UNISCITI AL NOSTRO GRUPPO DELLE OFFERTE TECH SU TELEGRAM. OGNI GIORNO TROVI OFFERTE SUPER, SELEZIONATE UNA AD UNA

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 2500 ISCRITTI, UNISCITI ANCHE TU: se vuoi essere sempre aggiornato SEGUICI QUI

HAI BISOGNO DI ASSISTENZA? Unisciti al nostro Gruppo di supporto - CLICCA QUI

NON HAI ANCORA AMAZON PRIME? Attivalo gratis ORA - CLICCA QUI

CERCHI LE MIGLIORI OFFERTE DI AMAZON? Scoprile QUI sempre aggiornate

In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei