#2 Le variabili - Guida alla programmazione in C - Exabyte

Scienza, tecnologia e società

giovedì 12 ottobre 2017

#2 Le variabili - Guida alla programmazione in C

Clicca qui per leggere la prima lezione.


Iscriviti al nostro canale Telegram: clicca qui

Indice guide #1 Introduzione
#2 Le variabili
#3 La libreria Stdio.h
#4 Blocchi di selezione if/else e switch
#5 Costrutti ciclici while, do/while, for

Concetto di variabile in C

Come abbiamo visto nel piccolo esempio della lezione precedente, un programma C acquisisce dati, li elabora e restituisce un risultato.
Per fare ciò è necessario andare a definire una rappresentazione univoca dei dati che vogliamo immagazzinare ed elaborare nel nostro programma.
Introduciamo quindi il concetto di variabile.
Le variabili in C servono a differenziare i dati e salvarli in memoria con dimensione (in byte) differente a seconda del tipo. Possiamo definire quindi una variabile come un’area di memoria avente:






  • nome: assegnato da noi in fase di dichiarazione;
  • indirizzo: assegnato dal compilatore e necessario per raggiungere l’area di memoria;
  • valore: assegnato da noi tramite l’inizializzazione

Dichiarare una variabile in C

Per dichiarare una variabile in C è sufficiente scrivere: tipodivariabile nomevariabile;
Ad esempio:
int d;
char c;
float f;

Questa operazione andrà a riservare un’area di memoria di n byte (a seconda del tipo dichiarato) e le assegnerà un indirizzo, che ci consentirà di accedere a quella variabile ogni volta che vorremo nel corso del programma.

Inizializzare una variabile

Una volta dichiarata una variabile questa avrà quindi un nome e un indirizzo in memoria, va assegnato quindi un valore. Per farlo è sufficiente scrivere: nomevariabile = valoredesiderato;
Ad esempio:
id = 5;
c = ‘m’;
f = 5.5;

NB: è possibile dichiarare e inizializzare una variabile con un solo comando es: int d = 5;
Questa operazione non fa altro che riempire la memoria precedentemente allocata con il valore successivo al simbolo =.
Bisogna ovviamente porre attenzione alla coerenza con quanto scritto in fase di dichiarazione; se ad esempio andassimo a scrivere:
int c;
c = 5.6;

quello che otterremo è un valore troncato al solo intero, in sostanza sarebbe come scrivere:
c = 5;
Allo stesso modo se andassimo a scrivere:
float f;
f = 5;

Il compilatore accetterà la vostra inizializzazione, ponendo il valore di f = 5.0000000 .

Una piccola nota invece va fatta per l’inizializzazione delle variabili char.
Per inizializzare correttamente una variabile char è necessario mettere il valore da assegnare tra apici (‘ ’). Esempio: 
char c;
char n;
c = ‘c’;
n = ‘2’;

Se invece scrivessimo l’inizializzazione di n come n = 2; quello che otterremo non è il valore numerico due, ma invece il carattere ASCII corrispondente a 2 nella tabella ASCII (link). Riportiamo in seguito un esempio per spiegare meglio quanto detto


Come potete vedere nonostante abbia assegnato alla variabile c il valore 48 quello che viene stampato a video è il valore 0.
Questo perché nella tabella ASCII il valore corrispondente alla codifica 48 è 0.

Assegnazione tra variabili

Come visto in precedenza il simbolo ‘ = ’ viene utilizzato per assegnare ad una variabile un valore.
Più in generale il simbolo ‘ = ‘ assegna alla variabile alla sua sinistra, il valore di quella alla sua destra.
variabiledestinazione = sorgente;
Il suddetto simbolo viene quindi utilizzato anche per assegnare ad una variabile il valore di un’altra, o di un’espressione formata da più variabili e/o valori numerici.
Esempio:
int a;
int b;
a = 4;
b = a;

Stiamo assegnando alla variabile b lo stesso valore di a.
NB: gli indirizzi in memoria della variabile a e della variabile b continuano ad essere distinti, con questa operazione stiamo uguagliando il solo valore.

Operazioni tra variabili numeriche

Le operazioni consentite tra le variabili numeriche sono:
Un’altra operazione consentita tra le variabili numeriche di C è quella del calcolo del resto, indicata con il simbolo “%”.
Questa ci permette di andare a calcolare il resto di una divisione tra due valori.
Esempio:
int a = 6;
int b = 2;
int ris = a % b;

In questo caso abbiamo che il risultato della divisione a / b è uguale a 3 con resto 0, quindi la nostra variabile ris verrà inizializzata al valore 0.

NB: cosi come nella normale matematica, in un’espressione numerica verranno eseguite prima le moltiplicazioni/divisioni e dopo le somme/sottrazioni.
Tuttavia per evitare qualsiasi errore è sempre consigliato l’uso delle parentesi, che consentiranno al compilatore di interpretare sempre in modo corretto le nostre formule.
Esempio: (a*b) + c equivale a scrivere a*b + c .

Operazioni abbreviate

Nel linguaggio C è possibile abbreviare la scrittura di alcune operazioni, cosi da renderle più semplici e veloci da scrivere.
Vediamo subito alcuni esempi:
int i = 0;
i++;
Con la codifica i++ si intende semplicemente i = i +1;
analogamente quindi la codifica i-- sarà equivalente a i = i - 1;
Generalizzando quanto detto abbiamo che:
variabile operazione= valore;
sarà equivalente a:
variabile = variabile operazione valore;
Chiariamo con un esempio:
int a = 0;
a += 5;
Equivale a:
int a = 0;
a = a +5;
Tuttavia avremo modo di apprezzare l'utilità di queste operazioni abbreviate solo più avanti.

Clicca qui per continuare: La libreria stdio.h

Nessun commento:

Posta un commento

Post Top Ad