Che cos'è una variabile?

Una variabile è un nome per un posto nella memoria del computer in cui vengono archiviati alcuni dati.

Immagina un magazzino molto grande con molti vani portaoggetti, tavoli, scaffali, locali speciali ecc. Questi sono tutti i luoghi in cui puoi conservare qualcosa. Immaginiamo di avere una cassa di birra in magazzino. Dove si trova esattamente?

Non diremmo che è memorizzato 31 '2 "dalla parete ovest e 27' 8" dalla parete nord. In termini di programmazione, non diremmo anche che il mio stipendio totale pagato quest'anno è memorizzato in quattro byte a partire dalla posizione 123.476.542.732 nella RAM.

Dati in un PC

Il computer posizionerà le variabili in posizioni diverse ogni volta che il nostro programma verrà eseguito. Tuttavia, il nostro programma sa esattamente dove si trovano i dati. Lo facciamo creando una variabile per fare riferimento ad essa e quindi lasciare che il compilatore gestisca tutti i dettagli disordinati su dove si trova effettivamente. Per noi è molto più importante sapere che tipo di dati verranno archiviati nella posizione.

Nel nostro magazzino, la nostra cassa potrebbe trovarsi nella sezione 5 dello scaffale 3 nell'area delle bevande. Nel PC, il programma saprà esattamente dove si trovano le sue variabili.

Le variabili sono temporanee

Esistono fino a quando sono necessari e vengono quindi eliminati. Un'altra analogia è che le variabili sono come numeri in una calcolatrice. Non appena si premono i pulsanti di cancellazione o spegnimento, i numeri del display vengono persi.

Quanto è grande una variabile

Grande quanto serve e non di più. Il più piccolo che una variabile può essere è un bit e il più grande è milioni di byte. I processori attuali gestiscono i dati in blocchi di 4 o 8 byte alla volta (CPU a 32 e 64 bit), quindi più grande è la variabile, più tempo ci vorrà per leggerla o scriverla. La dimensione della variabile dipende dal suo tipo.

Che cos'è un tipo di variabile?

Nei moderni linguaggi di programmazione, le variabili sono dichiarate di un tipo.

A parte i numeri, la CPU non fa alcun tipo di distinzione tra i dati nella sua memoria. Lo tratta come una raccolta di byte. Le CPU moderne (a parte quelle dei telefoni cellulari) in genere sono in grado di gestire sia l'aritmetica a numero intero che a virgola mobile nell'hardware. Il compilatore deve generare diverse istruzioni di codice macchina per ogni tipo, quindi sapere quale tipo di variabile aiuta a generare codice ottimale.

Quali tipi di dati può contenere una variabile?

I tipi fondamentali sono questi quattro.

  • Interi (sia con segno che senza segno) di dimensioni 1,2,4 o 8 byte. Di solito indicato come ints.
  • Virgola mobile Numeri fino a 8 byte di dimensione.
  • byte. Questi sono organizzati in 4 o 8 secondi (32 o 64 bit) e letti dentro e fuori dai registri della CPU.
  • Testo stringhe, fino a miliardi di byte di dimensioni. Le CPU hanno istruzioni speciali per la ricerca attraverso blocchi di byte di grandi dimensioni in memoria. Questo è molto utile per le operazioni di testo.

Esiste anche un tipo di variabile generale, spesso utilizzato nei linguaggi di scripting.

  • Variante - Questo può contenere qualsiasi tipo ma è più lento da usare.

Esempio di tipi di dati

  • Matrici di tipi: dimensioni singole come cassetti in un armadio, bidimensionali come scatole di smistamento degli uffici postali o tridimensionali come una pila di casse di birra. Può esserci un numero qualsiasi di dimensioni, fino ai limiti del compilatore.
  • Enum che sono un sottoinsieme limitato di numeri interi. Leggi cos'è un enum.
  • Le strutture sono una variabile composita in cui diverse variabili sono raggruppate insieme in una grande variabile.
  • I flussi forniscono un modo per gestire i file. Sono una forma di una stringa.
  • Gli oggetti sono come strutture ma con una gestione dei dati molto più sofisticata.

Dove sono memorizzate le variabili?

In memoria ma in modi diversi, a seconda di come vengono utilizzati.

  • A livello globale. Tutte le parti del programma possono accedere e modificare il valore. Questo è il modo in cui linguaggi più vecchi come Basic e Fortran gestivano i dati e non sono considerati una buona cosa. Le lingue moderne tendono a scoraggiare l'archiviazione globale, sebbene sia ancora possibile.
  • Sul mucchio. Questo è il nome dell'area principale utilizzata. In C e C ++, l'accesso a questo avviene tramite variabili puntatore.
  • Sullo stack. Lo stack è un blocco di memoria che viene utilizzato per memorizzare i parametri passati in funzioni e le variabili esistenti a livello locale.

Conclusione

Le variabili sono essenziali per la programmazione procedurale, ma è importante non rimanere troppo bloccati sull'implementazione sottostante a meno che non si stiano programmando sistemi o scrivendo applicazioni che devono essere eseguite in una piccola quantità di RAM.

Le nostre regole relative alle variabili:

  1. A meno che tu non sia stretto sull'ariete o abbia matrici di grandi dimensioni, mantieni gli ints piuttosto che a byte (8 bit) o breve int (16 bit). Soprattutto su CPU a 32 bit, vi è una penalità di ritardo aggiuntiva nell'accesso a meno di 32 bit.
  2. Usa float anziché doppi a meno che non sia necessaria la precisione.
  3. Evita le varianti se non veramente necessarie. Sono più lenti.