Appunti per Scuola e Università
humanisticheUmanistiche
Appunti e tesine di tutte le materie per gli studenti delle scuole medie riguardanti le materie umanistiche: dall'italiano alla storia riguardanti le materie umanistiche: dall'italiano alla storia 
sceintificheScientifiche
Appunti, analisi, compresione per le scuole medie suddivisi per materie scientifiche, per ognuna troverai appunti, dispense, esercitazioni, tesi e riassunti in download.
tecnicheTecniche
Gli appunti, le tesine e riassunti di tecnica amministrativa, ingegneria tecnico, costruzione. Tutti gli appunti di AppuntiMania.com gratis!
Appunti
informatica
CComputerDatabaseInternetJava
Linux unixReti


AppuntiMania.com » Informatica » Appunti di c » Le variabili

Le variabili




Visite: 1310Gradito:apreciate 5-stela [ Picolo appunti ]
Leggi anche appunti:

Problemi di mutua esclusione nel modello a memoria comune


Problemi di mutua esclusione nel modello a memoria comune VI) Scrivere una

Operatori aritmetici


Operatori aritmetici Gli operatori aritmetici del C sono i simboli di addizione

I puntatori


I puntatori Una variabile è un'area di memoria alla quale è associato un nome
immagine di categoria

Scarica gratis Le variabili

Le variabili

E' il momento di ripescare CIAO.C e complicarlo un poco.

#include <stdio.h>


void main(void);


void main(void)


Nella nuova versione, CIAO2.C abbiamo introdotto qualcosa di molto importante: l'uso delle variabili. Il C consente di individuare una certa area di memoria mediante un nome arbitrario che le viene attribuito con un'operazione detta definizione della variabile; la variabile è ovviamente l'area di RAM così identificata. Ogni riferimento al nome della variabile è in realtà un riferimento al valore in essa contenuto; si noti, inoltre, che nella definizione della variabile viene specificato il tipo di dato associato a quel nome (e dunque contenuto nella variabile). In tal modo il programmatore può gestire i dati in RAM senza conoscerne la posizione e senza preoccuparsi (entro certi limiti) della loro dimensione in bit e dell'organizzazione interna dei bit, cioè del significato che ciascuno di essi assume nell'area di memoria assegnata alla variabile.

Con la riga

unsigned int anni;

viene definita una variabile di nome anni e di tipo unsigned integer (intero senza segno): essa occupa perciò una word nella memoria dell'elaboratore e può assumere valori da  . Va osservato che alla variabile non è associato, per il momento, alcun valore: essa viene inizializzata con la riga

anni = 31;

che costituisce un'operazione di assegnazione: il valore  è assegnato alla variabile anni; l'operatore ' ', in C, è utilizzato solo per le assegnazioni (che sono sempre effettuate da destra a sinistra), in quanto per il controllo di una condizione di uguaglianza si utilizza un operatore apposito (' '): per saperne di più, vedere pag. 

Tuttavia è possibile inizializzare una variabile contestualmente alla sua dichiarazione:

unsigned int anni = 31;

è, in C, un costrutto valido.

Nella definizione di variabili di tipo integral, la parola int può essere sempre omessa, eccetto il caso in cui sia 'sola'

unsigned anni = 31; // OK! sinonimo di unsigned int

long abitanti; // OK! sinonimo di long int

valore; // ERRORE! il solo nome della variabile NON basta!

Dal momento che ci siamo, anche se non c'entra nulla con le variabili, tanto vale chiarire che le due barre ' ' introducono un commento, come si deduce dalle dichiarazioni appena viste. Viene considerato commento tutto ciò che segue le due barre, fino al termine della riga. Si possono avere anche commenti multiriga, aperti da ' ' e chiusi da ' . Ad esempio:

/* abbiamo esaminato alcuni esempi

di dichiarazioni di variabili */

Tutto il testo che fa parte di un commento viene ignorato dal compilatore e non influisce sulle dimensioni del programma eseguibile; perciò è bene inserire con una certa generosità commenti chiarificatori nei propri sorgenti. Non è infrequente che un listato, 'dimenticato' per qualche tempo, risulti di difficile lettura anche all'autore, soprattutto se questi non ha seguito la regola KISS, già menzionata a pag.  . I commenti tra ' ' e ' ' non possono essere nidificati, cioè non si può fare qualcosa come:

/* abbiamo esaminato alcuni esempi

/* alcuni validi e altri no */

di dichiarazioni di variabili */

Il compilatore segnalerebbe strani errori, in quanto il commento è chiuso dal primo ' ' incontrato.

Tornando all'argomento del paragrafo, va ancora precisato che in una riga logica possono essere definite (e, volendo, inizializzate) più variabili, purché tutte dello stesso tipo, separandone i nomi con una virgola:

int var1, var2; // due variabili int, nessuna delle quali inizializzata

char ch1 = 'A', ch2; // due variabili char, di cui solo la prima inizializ.

float num, // dichiarazione di 3 float ripartita su 3

v1, // righe fisiche; solo l'ultima variabile

terzaVar = 12.4; // e' inizializzata

Soffermiamoci un istante sulla dichiarazione dei 3 float: la suddivisione in più righe non è obbligatoria, ed ha esclusivamente finalità di chiarezza (dove avremmo sistemato i commenti?). Inoltre, e questo è utile sottolinearlo, l'inizializzazione ha effetto esclusivamente sull'ultima variabile dichiarata, terzaVar. Un errore commesso frequentemente dai principianti (e dai distratti) è assegnare un valore ad una sola delle variabili dichiarate, nella convinzione che esso venga assegnato anche a tutte quelle dichiarate 'prima'. Ebbene, non è così. Ogni variabile deve essere inizializzata esplicitamente, altrimenti essa contiene già che cosa? Cosa contiene una variabile non inizializzata? Ai capitoli successivi, ed in particolare a pag.  l'ardua sentenza per il momento, provate a pensarci su.

Inoltre, attenzione alle maiuscole. La variabile terzaVar deve essere sempre indicata con la 'V' maiuscola:

int terzavar; //OK!

char TerzaVar; //OK!

double terzaVar;  //ERRORE! terzaVar esiste gia'!

Non è possibile dichiarare più variabili con lo stesso nome in una medesima funzione (ma in funzioni diverse sì). A rendere differente il nome è sufficiente una diversa disposizione di maiuscole e minuscole.

I nomi delle variabili devono cominciare con una lettera dell'alfabeto o con l'underscore (' ') e possono contenere numeri, lettere e underscore. La loro lunghezza massima varia a seconda del compilatore; le implementazioni commerciali più diffuse ammettono nomi composti di oltre 32 caratteri (vedere pag. 

double _numVar;

int Variabile_Intera_1;

char 1_carattere;             //ERRORE! il nome inizia con un numero

Anche il void type può essere incontrato nelle dichiarazioni: esso può però essere utilizzato solo per dichiarare funzioni o puntatori, ma non comuni variabili; la parola chiave da utilizzare nelle dichiarazioni è void

Per riassumere, ecco l'elenco dei tipi di dato e delle parole chiave da utilizzare per dichiarare le variabili.

Tipi di dato e dichiaratori

TIPO

DICHIARATORI VALIDI

character

char

unsigned character

unsigned char

short integer

short int, short

unsigned short integer

unsigned short int, unsigned short

integer

int

unsigned integer

unsigned int, unsigned

long integer

long int, long

unsigned long integer

unsigned long int, unsigned long

floating point

float

double precision floating point

double

long double precision floating point

long double

void type

void

Un'ultima osservazione: avete notato che nelle stringhe passate a printf() sono comparsi strani simboli ('%u %f')? Si tratta di formattatori di campo e indicano a printf() come interpretare (e quindi visualizzare) le variabili elencate dopo la stringa stessa. La sequenza '%u' indica un intero senza segno, mentre '%f' indica un dato di tipo float. Un intero con segno si indica con '%d', una stringa con '%s', un carattere con '%c

Dalle pagine che precedono appare chiaro che la dimensione dell'area di memoria assegnata dal compilatore ad una variabile dipende dall'ingombro in byte del tipo di dato dichiarato. In molti casi può tornare utile sapere quanti byte sono allocati (cioè assegnati) ad una variabile, o a un tipo di dato. Allo scopo è possibile servirsi dell'operatore sizeof(), che restituisce come int il numero di byte occupato dal tipo di dato o dalla variabile indicati tra le parentesi. Vedere, per un esempio, pag. 

Scarica gratis Le variabili
Appunti su:



Scarica 100% gratis e , tesine, riassunti



Registrati ora

Password dimenticata?
  • Appunti superiori
  • In questa sezione troverai sunti esame, dispense, appunti universitari, esercitazioni e tesi, suddivisi per le principali facoltà.
  • Università
  • Appunti, dispense, esercitazioni, riassunti direttamente dalla tua aula Universitaria
  • all'Informatica
  • Introduzione all'Informatica, Information and Comunication Tecnology, componenti del computer, software, hardware ...