alura:
creazione di una variabile e di un puntatore
codice:
// creazione varabile e puntatore
int pippo, *punta_pippo;
//puntamento alla varaibile
punta_pippo = &pippo; /* i puntatori contengono un indirizzo di memoria: l'operatore & indica L'INDIRIZZO DI variabile_che_lo_segue*/
/*
nota il puntatore deve sempre essere dello stesso tipo della variabile a cui punta.
Questo perchè: quando creo una variaible in memoria
il compilatore sa quanti byte occupa ( int 2 o 4, char 1 ect) il puntatore, se accede ad una cella di memoria che contiene parte del dato (ad esempio
se cè un int di 2 byte occuperà 2 byte,
quindi 2 celle di memoria)
il puntatore deve sapere quanti bit leggere x interpretare correttamente il dato.
Se tu dichiari un punatore char e una variabile int,
e fai puntare il puntaotre alla vriabile potrei leggere ed accedere solo al byte più significativo del dato intro
sepro di essere stao chiaro( al massimo scrivimi x maggiori dettagli)*/
// accesso alla variabile
printf ("pippo %d\n", *punta_pippo);
I puntatori vengono usati spessissimo x accedere ad un array. L'uso di puntatori è molto + veloche che il metodo x indicizzazione:
codice:
int array[100], *punta_array;
punta_array = array; /*il nome dell'array è identico
a &nome_array[0] quindi basta il nome
x fare puntare il puntatore alla prima cella di memoria*/
// sommare alla cella corrente quella successiva
punta_array += punta_array++; /* l'indirizzo dell'array viene incrementato,
passando alla cella successiva.
Questa istruzione equivale a
array[corrente] = array[corrente] + array[corrente+1]*/
// passare dalla cella 2 alla 5
punta_array += 3
penso che x ora possa bastare così
ti dico anche che
nel passaggio x riferimento vengono usati i puntatori
nella strutturazione dinamica vengono usati i puntatori
e molto altro ancora
SPERO DI ESSERE STATO ESAURIENTE
ciauz