la mattina passata veloce se non per le ultime 2 ore che abbiamo avuto il test d'ingresso di ragioneria..aiuto spero sia andato bene..ma bo..vedremo poi..=)
in informatica abbiamo ancora fatto ripasso in particolare sui flow chart (diagrammi di flusso), poi ripassato il case of e il for gia trattato nella scorsa lezione..
ADT= astract date type
ISO= international standard organization
ora vi lascio con un appunto qui sotto...a domani =))
ciaoo!!
PUNTATORE
In programmazione, i puntatori sono valori di tipi speciali che rappresentano indirizzi di memoria di elementi del linguaggio di un determinato tipo come variabili, oggetti e altre strutture dati o, in alcuni casi, sottoprogrammi. In generale, i puntatori sono un meccanismo che consente l'indirizzamento indiretto nei linguaggi di programmazione ad alto livello; fra le applicazioni specifiche vi sono la creazione di strutture dati dinamiche e la simulazione del passaggio di parametri per riferimento nei linguaggi che consentono solo il passaggio di parametri per valore.
Un concetto strettamente legato ai puntatori è quello di riferimento o reference.
Un concetto strettamente legato ai puntatori è quello di riferimento o reference.
Tipi di puntatore
Nei linguaggi tipizzati, ogni puntatore ha un tipo ben definito, derivato dal tipo dell'oggetto puntato. Così, l'indirizzo di memoria di una variabile di tipo "numero intero" si dirà essere di tipo "puntatore a numero intero", e questo sarà considerato dal linguaggio come un tipo distinto da "puntatore a carattere" o altri tipi puntatore. Il tipo dell'oggetto puntato viene spesso detto tipo base del puntatore (con terminologia analoga a quella usata per gli array). I tipi puntatori possono essere impiegati anche nella dichiarazione di variabili (o in altri contesti analoghi).
Nei linguaggi tipizzati, ogni puntatore ha un tipo ben definito, derivato dal tipo dell'oggetto puntato. Così, l'indirizzo di memoria di una variabile di tipo "numero intero" si dirà essere di tipo "puntatore a numero intero", e questo sarà considerato dal linguaggio come un tipo distinto da "puntatore a carattere" o altri tipi puntatore. Il tipo dell'oggetto puntato viene spesso detto tipo base del puntatore (con terminologia analoga a quella usata per gli array). I tipi puntatori possono essere impiegati anche nella dichiarazione di variabili (o in altri contesti analoghi).
Operazioni sui puntatori
L'operazione fondamentale che si può eseguire su un valore di tipo puntatore viene detta dereferenziazione (dereferencing) oppure operazione di risoluzione del riferimento; è rappresentata da un operatore unario che, applicato a un puntatore, produce come risultato l'oggetto puntato.
Un'altra operazione piuttosto comune relativa ai puntatori (non fornita da tutti i linguaggi) consente di ottenere un puntatore a una data variabile, ovvero calcolarne l'indirizzo; l'operatore corrispondente (anch'esso unario) viene spesso detto "operatore indirizzo-di". In C e in C++ questo operatore è rappresentato dal simbolo "&":pn = &n;
assegna al puntatore pn l'indirizzo della variabile n. Finché pn manterrà tale valore, qualsiasi uso del puntatore derefenziato, come*pn = 4;
avrà effetto sulla variabile n puntata da pn.
Alcuni linguaggi (in particolare della famiglia del C) forniscono un insieme supplementare di operazioni sui valori di tipo puntatore, pensati soprattutto per la navigazione all'interno di array; essi vanno sotto il nome di aritmetica dei puntatori.
I puntatori possono essere usati anche per chiamare funzioni, in tal caso si parla di puntatori a funzione.
Supponiamo di avere 2 funzioni:
int f1(double);
int f2(double);
int f2(double);
allora è possibile creare un puntatore a funzione in questa maniera:int (*pfunz)(double);
A questo punto, si può decidere di far puntare il puntatore pfunz o alla prima funzione f1, o alla seconda funzione f2:
if (condizione)
pfunz = f1;
else
pfunz = f2;
pfunz = f1;
else
pfunz = f2;
Per invocare la funzione, basta dereferenziare il puntatore:int ris = pfunz(4.2);
Tutto questo meccanismo è valido solo se le funzioni hanno lo stesso tipo di ritorno e lo stesso numero di parametri dello stesso tipo.
Applicazioni
L'uso di puntatori è spesso necessario per costruire strutture dati dinamiche (dalla forma non prevedibile a priori e/o variabile nel tempo) come grafi, alberi, liste e così via.
Un'altra applicazione classica dei puntatori consiste nel simulare il passaggio di parametri per riferimento in quei linguaggi che dispongono solo di passaggio di parametri per valore.
Nessun commento:
Posta un commento