C/Variabili, operatori e costanti/Variabili: differenze tra le versioni
Nessun oggetto della modifica |
|||
Riga 3: | Riga 3: | ||
Una '''variabile''' in [[w:C (linguaggio)|C]] (e in programmazione in generale) è uno spazio di memoria che contiene un valore. |
Una '''variabile''' in [[w:C (linguaggio)|C]] (e in programmazione in generale) è uno spazio di memoria che contiene un valore. Una variabile ha un nome che viene usato nella programmazione per riferirsi a un certo particolare spazio di memoria. |
||
==Dichiarazione== |
|||
⚫ | |||
Per essere usata una variabile va prima dichiarata. La dichiarazione è la seguente: |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
tipo nome_variabile; |
|||
==Sintassi== |
|||
Ecco la sintassi per dichiarare le variabili di ciascun tipo: |
|||
che dichiara una variabile il cui nome <code>nome_variabile</code> e il cui tipo è <code>tipo</code>. Per esempio se vogliamo dichiarare una variabile di tipo intero possiamo farlo nel seguente modo: |
|||
int numeroIntero; |
|||
float numeroInVirgolaMobile; |
|||
double numeroInVirgolaMobileDoppio; |
|||
char carattere; |
|||
int numero; |
|||
È possibile assegnare un valore alle variabili sia alla creazione che successivamente, in questo modo: |
|||
dove <code>int</code> è un tipo di variabile usato per rappresentare i numeri interi. È possibile dichiarare più variabili dello stesso tipo su una sola riga per esempio: |
|||
int numeroIntero=valore; |
|||
float numeroInVirgolaMobile=valore; |
|||
double numeroInVirgolaMobileDoppio=valore; |
|||
char carattere=valore; |
|||
//Istruzioni varie... |
|||
numeroIntero=valore; |
|||
numeroInVirgolaMobile=valore; |
|||
numeroInVirgolaMobileDoppio=valore; |
|||
carattere=valore; |
|||
int a,b; |
|||
Inoltre si possono dichiarare anche più variabili dello stesso tipo in un unica istruzione separandole con virgole: |
|||
dichiara due variabili di tipo <code>int</code>. Le varibili possono essere inizializzate durante la dichiarazione: |
|||
tipo var1, var2, varN; |
|||
int c = 1; |
|||
se non si inizializza una variabile si dice che il suo valore è indeterminato, nel senso che non si può dire che cosa contenga. Tipicamente una variabile non inizializzata contiene ''garbage'', spazzatura, cioè contiene quello che è presente nel suo indirizzo al momento dell'allocazione. Alcuni compilatori azzerano le variabili appena dichiarate. Poiché il comportamento del compilatore in genere non è noto, e poiché il nostro programma dovrà essere compatibile col maggior numero di compilatori il programma dovrà inizializzare le varibili prima dell'uso. Se si dichiarano più variabili sulla stessa riga possono essere o meno inizializzate: |
|||
int d, e = 2; |
|||
che crea due variabili, ma solo la seconda è inizializzata |
|||
int f = 1, g = 2; |
|||
tutte e due sono inizializzate. |
|||
==Assegnazione== |
|||
Con l'operatore di assegnazione <code>=</code> si assegna ad una variabile un particolare valore: |
|||
int a; |
|||
a = 1; |
|||
la variabile a è dichiarata di tipo intero e successivamente gli viene assegnato il valore 1. Ad una variabile può essere assegnato il valore di un'altra variabile: |
|||
int b,c = 0; |
|||
b = c; |
|||
entrambe le variabili valgono 0. |
|||
L'assegnamento può essere fatto anche per più variabili contemporaneamente: |
|||
int x,y; |
|||
x = y = 2; |
|||
Ad entrambe le variabili viene assegnato il valore 2. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
==Esempi d'uso== |
==Esempi d'uso== |
||
int numeroIntero=45; |
int numeroIntero = 45; |
||
float numeroInVirgolaMobile=54.78; |
float numeroInVirgolaMobile = 54.78; |
||
double numeroInVirgolaMobileDoppio=34.567; |
double numeroInVirgolaMobileDoppio = 34.567; |
||
char carattere='a'; |
char carattere = 'a'; |
||
printf("La variabile intera è uguale a %d", numeroIntero); |
printf("La variabile intera è uguale a %d", numeroIntero); |
||
numeroIntero=54; |
numeroIntero = 54; |
||
numeroInVirgolaMobile=78.9; |
numeroInVirgolaMobile = 78.9; |
||
numeroInVirgolaMobileDoppio=179.678; |
numeroInVirgolaMobileDoppio = 179.678; |
||
carattere='b'; |
carattere = 'b'; |
||
==Opzioni== |
==Opzioni== |
||
È possibile utilizzare delle opzioni quando si dichiarano le variabili per ottenere speciali comportamenti. |
È possibile utilizzare delle opzioni quando si dichiarano le variabili per ottenere speciali comportamenti. |
||
=== |
===const=== |
||
Il comando <tt>const</tt> dichiara delle costanti, ovvero dei nomi assegnati in modo fisso a dei valori. In pratica sono come delle macro, solo che non accettano funzioni come valore. |
Il comando <tt>const</tt> dichiara delle costanti, ovvero dei nomi assegnati in modo fisso a dei valori. In pratica sono come delle macro, solo che non accettano funzioni come valore. |
||
Riga 63: | Riga 85: | ||
Inoltre le variabili const sono anche usate come parametri delle [[Linguaggio C/Blocchi e funzioni/Funzioni|funzioni]] per assicurarsi che all'interno della funzione il valore di una variabile non possa subire variazioni. |
Inoltre le variabili const sono anche usate come parametri delle [[Linguaggio C/Blocchi e funzioni/Funzioni|funzioni]] per assicurarsi che all'interno della funzione il valore di una variabile non possa subire variazioni. |
||
const int dieci=10; |
const int dieci = 10; |
||
printf("Il numero è %d", dieci); |
printf("Il numero è %d", dieci); |
||
=== |
===volatile=== |
||
Il comando <tt>volatile</tt> indica che il valore di una variabile potrebbe essere cambiato da eventi esterni, in modo che si possano prevenire eventuali errori. |
Il comando <tt>volatile</tt> indica che il valore di una variabile potrebbe essere cambiato da eventi esterni, in modo che si possano prevenire eventuali errori. |
||
Riga 72: | Riga 94: | ||
volatile int laMiaVariabile=14; |
volatile int laMiaVariabile=14; |
||
=== |
===static=== |
||
=== |
===register=== |
||
L'istruzione <tt>register</tt> indica che una variabile dovrà essere utilizzata molto e richiede al compilatore di memorizzarla in un registro della [[w:CPU|CPU]] o comunque di velocizzarne l'accesso. Questo comando potrebbe venire ignorato dal compilatore se il registro della CPU è troppo pieno. |
L'istruzione <tt>register</tt> indica che una variabile dovrà essere utilizzata molto e richiede al compilatore di memorizzarla in un registro della [[w:CPU|CPU]] o comunque di velocizzarne l'accesso. Questo comando potrebbe venire ignorato dal compilatore se il registro della CPU è troppo pieno. |
||
register int i=1; |
register int i = 1; |
||
for (i=1; i<=10; i++) |
for (i=1; i<=10; i++) |
||
printf("Il numero è %d \n", i); |
printf("Il numero è %d \n", i); |
Versione delle 18:09, 30 mar 2006
Template:Stub Template:Linguaggio C
Una variabile in C (e in programmazione in generale) è uno spazio di memoria che contiene un valore. Una variabile ha un nome che viene usato nella programmazione per riferirsi a un certo particolare spazio di memoria.
Dichiarazione
Per essere usata una variabile va prima dichiarata. La dichiarazione è la seguente:
tipo nome_variabile;
che dichiara una variabile il cui nome nome_variabile
e il cui tipo è tipo
. Per esempio se vogliamo dichiarare una variabile di tipo intero possiamo farlo nel seguente modo:
int numero;
dove int
è un tipo di variabile usato per rappresentare i numeri interi. È possibile dichiarare più variabili dello stesso tipo su una sola riga per esempio:
int a,b;
dichiara due variabili di tipo int
. Le varibili possono essere inizializzate durante la dichiarazione:
int c = 1;
se non si inizializza una variabile si dice che il suo valore è indeterminato, nel senso che non si può dire che cosa contenga. Tipicamente una variabile non inizializzata contiene garbage, spazzatura, cioè contiene quello che è presente nel suo indirizzo al momento dell'allocazione. Alcuni compilatori azzerano le variabili appena dichiarate. Poiché il comportamento del compilatore in genere non è noto, e poiché il nostro programma dovrà essere compatibile col maggior numero di compilatori il programma dovrà inizializzare le varibili prima dell'uso. Se si dichiarano più variabili sulla stessa riga possono essere o meno inizializzate:
int d, e = 2;
che crea due variabili, ma solo la seconda è inizializzata
int f = 1, g = 2;
tutte e due sono inizializzate.
Assegnazione
Con l'operatore di assegnazione =
si assegna ad una variabile un particolare valore:
int a; a = 1;
la variabile a è dichiarata di tipo intero e successivamente gli viene assegnato il valore 1. Ad una variabile può essere assegnato il valore di un'altra variabile:
int b,c = 0; b = c;
entrambe le variabili valgono 0.
L'assegnamento può essere fatto anche per più variabili contemporaneamente:
int x,y; x = y = 2;
Ad entrambe le variabili viene assegnato il valore 2.
I tipi di variabili
Ad ogni variabile in C deve essere associato un tipo, quindi quando si dichiara una variabile bisogna specificare sempre di che tipo è. In C le variabili possono essere di 5 tipi base:
- int: sono i numeri interi.
- float: sono i numeri a virgola mobile (in inglese "floating-point") a precisione singola.
- double: sono i numeri a virgola mobile a precisione doppia.
- char: sono le variabili che contengono un carattere.
- void: il non-tipo: non si possono creare variabili void, ma questo tipo è usato per dichiarare puntatori generici (che possono puntare a qualunque tipo di dati) e per definire funzioni che non restituiscono alcun valore.
Esempi d'uso
int numeroIntero = 45; float numeroInVirgolaMobile = 54.78; double numeroInVirgolaMobileDoppio = 34.567; char carattere = 'a'; printf("La variabile intera è uguale a %d", numeroIntero); numeroIntero = 54; numeroInVirgolaMobile = 78.9; numeroInVirgolaMobileDoppio = 179.678; carattere = 'b';
Opzioni
È possibile utilizzare delle opzioni quando si dichiarano le variabili per ottenere speciali comportamenti.
const
Il comando const dichiara delle costanti, ovvero dei nomi assegnati in modo fisso a dei valori. In pratica sono come delle macro, solo che non accettano funzioni come valore.
Si può usare anche la direttiva #define per ottenere lo stesso risultato, ma in generale l'uso di const è preferibile.
Inoltre le variabili const sono anche usate come parametri delle funzioni per assicurarsi che all'interno della funzione il valore di una variabile non possa subire variazioni.
const int dieci = 10; printf("Il numero è %d", dieci);
volatile
Il comando volatile indica che il valore di una variabile potrebbe essere cambiato da eventi esterni, in modo che si possano prevenire eventuali errori.
volatile int laMiaVariabile=14;
static
register
L'istruzione register indica che una variabile dovrà essere utilizzata molto e richiede al compilatore di memorizzarla in un registro della CPU o comunque di velocizzarne l'accesso. Questo comando potrebbe venire ignorato dal compilatore se il registro della CPU è troppo pieno.
register int i = 1; for (i=1; i<=10; i++) printf("Il numero è %d \n", i);