Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 30 di 47
  • livello principiante
Indice lezioni

Puntatori e Strutture

Come utilizzare ocngiuntamente strutture e puntatori
Come utilizzare ocngiuntamente strutture e puntatori
Link copiato negli appunti

Nell'uso congiunto di strutture e puntatori, come mostrato nell'esempio seguente scritto in C:

struct PIPPO { int x, y, z; } elemento;
struct PIPPO *puntatore;

puntatore = &elemento;

puntatore->x = 6;
puntatore->y = 8;
puntatore->z = 5;

 

si può notare che abbiamo creato una struttura di tipo PIPPO e di nome "elemento", ed un puntatore ad una struttura di tipo PIPPO. Per accedere ai membri interni della struttura "elemento" abbiamo usato l'operatore -> sul puntatore alla struttura. Inoltre è possibile utilizzare i puntatori anche per, ad esempio, le liste semplici (tratteremo le liste nella lezione 15), in cui per collegare due elementi, basta scrivere:

typedef struct { int inf; ELEMENTO *pun; } ELEMENTO;

ELEMENTO ele1, ele2;

// in questo modo faccio puntare il primo elemento al secondo
ele1.pun = &ele2;

 

ESEMPIO PRATICO
(Visualizza il sorgente completo)

Il largo uso fatto di puntatori fa capire quanto siano importanti questi strumenti per scrivere codice potente (in termini
di capacità), ma allo stesso tempo estremamente ridotto (rispetto ad una versione senza puntatori). Ad esempio è
possibile modificare gli elementi di una lista (spiegato successivamente) semplicemente "giocando" con i puntatori.

415             // trovato l'elemento gli faccio puntare l'oggetto puntato dal suo
416             // puntatore, in poche parole "salto" l'elemento da eliminare
417             if(subscelta == n)
418             { // IF - OPEN
419
420               aus->pun=aus->pun->pun;
421
422             } else { // ELSE
423
424               // Nel caso in cui il puntatore fosse NULL, per non creare casini
425               // glielo assegniamo direttamente
426               aus=aus->pun;
427
428             } // IF - CLOSE

Ti consigliamo anche