Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet. Romeo and Juliet, Act III, Scene II, Shakespeare
Fondamenti di Informatica A - Massimo Bertozzi Le variabili Si definisce variabile uno spazio in memoria dotato di nome in cui è possibile scrivere, recuperare e manipolare dati nel corso del programma. Una variabile è caratterizzata da: Il suo valore right value o rvalue Il suo indirizzo, left value o lvalue (lo spazio occupato)
Fondamenti di Informatica A - Massimo Bertozzi Macchina di von Neumann
Fondamenti di Informatica A - Massimo Bertozzi Nome di una variabile Il nome di una variabile o identificatore può essere costituito da lettere, cifre o underscore ``_'' il primo carattere deve essere una lettera lettere minuscole o maiuscole sono differenti non può essere una parola chiave
Fondamenti di Informatica A - Massimo Bertozzi Nome di una variabile (2) Alcune convenzioni: il nome di una variabile è normalmente minuscolo il nome deve essere mnemonico quando il nome è formato da piú parole è opportuno usare l'underscore o alcune lettere maiuscole
Fondamenti di Informatica A - Massimo Bertozzi Albero dei tipi di dato Dati scalari Dati composti Dati in C++ Interi Virgola mobile charshortint longenum bool floatdouble long double puntatori struct class union void
Fondamenti di Informatica A - Massimo Bertozzi Definizioni di variabili int a; long int b; long c; short d; float e; long double f, h; double j, g=3.14; Attenzione: le definizioni semplici NON inizializzano il valore delle variabili
Fondamenti di Informatica A - Massimo Bertozzi Segno delle variabili Si possono individuare casi in cui si desidera gestire solo numeri positivi: operatore unsigned i tipi short, int e long sono tipi di dato con segno il segno del tipo char non è definito dallo standard: operatore signed
Fondamenti di Informatica A - Massimo Bertozzi L'operatore sizeof Non esistono regole rigide sul numero di byte necessari per la memorizzazione dei differenti tipi di dato. differenti compilatori differenti architetture problemi di overflow e precisione L'operatore sizeof permette di gestire la portabilità
Fondamenti di Informatica A - Massimo Bertozzi Intervalli di valori (Turbo C++)
Fondamenti di Informatica A - Massimo Bertozzi Intervalli di valori (MinGW)
Fondamenti di Informatica A - Massimo Bertozzi Combinazione di tipi differenti Il C++ permette di combinare tipi differenti nelle espressioni aritmetiche. Vengono effettuate conversioni implicite o anche automatiche conversioni di assegnamento char e short sono convertiti in int, unsigned char o unsigned short in int oppure unsigned int in un espressione aritmetica si seguono le conversioni dell'operatore
Fondamenti di Informatica A - Massimo Bertozzi Conversioni nelle espressioni Ogni espressione è suddivisa in sotto- espressioni in genere gli operatori binari richiedono operandi dello stesso tipo int unsigned int long unsigned long float long double double
Fondamenti di Informatica A - Massimo Bertozzi Conversioni esplicite Oltre alle conversioni di tipo esplicito è possibile (e auspicabile) utilizzare conversioni di tipo esplicito: casting a=5; float J=a/3; dipende dal tipo di a due tipologie: C: (tipo) dato; C++: tipo(dato);
Fondamenti di Informatica A - Massimo Bertozzi Il tipo bool Lo standard C++ prevede un altro tipo di intero, il tipo bool che può assumere solo due valori false e true Attenzione: il turbo C++ non lo prevede valgono le seguenti convenzioni: false==0; true!=0;
Fondamenti di Informatica A - Massimo Bertozzi Le costanti Il C++ permette l'utilizzo di costanti: costanti senza nome: numeriche o caratteri, operatori uU, lL e fF stringhe costanti con nome operatore const #define
Fondamenti di Informatica A - Massimo Bertozzi Visibilità delle variabili Si definisce ambito di visibilità di una variabile la regione di codice da cui è possibile accedere alla variabile: programma (variabili globali) file funzione blocco
Fondamenti di Informatica A - Massimo Bertozzi Visibilità delle variabili (2) La visibilità delle variabili dipende dalla posizione della loro definizione o dall'utilizzo dello specificatore di visibilità static l'utilizzo di variabili globali dovrebbe essere ridotto al minimo posso avere variabili differenti con lo stesso nome (operatore ::)