0Pricing
C Academy · Lezione

auto e ambito locale

Variabili a livello di blocco

auto e ambito locale è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 4 lezioni in totale.

Che cos’è l’ambito

L’ambito è la regione del codice in cui un nome è visibile. In C, le variabili dichiarate all’interno di un blocco sono visibili solo in quel blocco.

#include <stdio.h>
int main(void) {
    int x = 5;
    printf("x = %d\n", x);
    return 0;
}

La classe di memoria auto

Le variabili locali sono auto per impostazione predefinita. La parola chiave viene scritta raramente perché è implicita per ogni variabile con ambito di blocco.

#include <stdio.h>
int main(void) {
    auto int n = 42;
    printf("n = %d\n", n);
    return 0;
}

Ambito di blocco

Una coppia di parentesi graffe crea un nuovo blocco. Le variabili al suo interno cessano di esistere quando il blocco termina.

#include <stdio.h>
int main(void) {
    {
        int inner = 10;
        printf("inner = %d\n", inner);
    }
    return 0;
}

Durata automatica

Una variabile auto viene creata quando si entra nel suo blocco e distrutta quando si esce dal blocco. Questa è la sua durata.

#include <stdio.h>
int main(void) {
    for (int i = 0; i < 2; i++) {
        int fresh = i * 10;
        printf("fresh = %d\n", fresh);
    }
    return 0;
}

Nascondimento

Una variabile interna può nascondere una variabile esterna con lo stesso nome. All’interno del suo blocco prevale il nome interno.

#include <stdio.h>
int main(void) {
    int x = 1;
    {
        int x = 99;
        printf("inner x = %d\n", x);
    }
    printf("outer x = %d\n", x);
    return 0;
}

I parametri delle funzioni sono locali

Anche i parametri sono variabili locali. Esistono solo mentre la funzione è in esecuzione.

#include <stdio.h>
int square(int n) {
    return n * n;
}
int main(void) {
    printf("%d\n", square(6));
    return 0;
}

Variabili locali non inizializzate

Una variabile auto non viene azzerata automaticamente. Leggerla prima di assegnarle un valore produce un valore casuale. La inizializzi sempre.

#include <stdio.h>
int main(void) {
    int x = 0;
    x = x + 5;
    printf("x = %d\n", x);
    return 0;
}

Locali per ogni chiamata

Ogni chiamata a una funzione riceve una nuova copia delle proprie variabili locali.

#include <stdio.h>
void greet(void) {
    int count = 1;
    printf("count = %d\n", count);
}
int main(void) {
    greet();
    greet();
    return 0;
}

Perché le variabili locali sono utili

L’ambito locale mantiene le variabili isolate, evitando interferenze accidentali tra le diverse parti del programma.

#include <stdio.h>
int main(void) {
    int a = 3;
    {
        int b = 4;
        printf("a + b = %d\n", a + b);
    }
    return 0;
}

Blocchi annidati

I blocchi possono essere annidati. I blocchi interni possono leggere le variabili esterne, ma i blocchi esterni non possono leggere quelle interne.

#include <stdio.h>
int main(void) {
    int outer = 1;
    {
        int middle = 2;
        {
            int inner = 3;
            printf("%d\n", outer + middle + inner);
        }
    }
    return 0;
}

Ambito e cicli

Una variabile dichiarata nell’intestazione di un for ha un ambito limitato al solo ciclo.

#include <stdio.h>
int main(void) {
    int sum = 0;
    for (int i = 1; i <= 4; i++)
        sum += i;
    printf("sum = %d\n", sum);
    return 0;
}

Verifica rapida

Verifichi la Sua comprensione di auto e dell’ambito locale.

Riepilogo: auto e ambito locale

Ha imparato come si comportano le variabili locali.

  • Le variabili con ambito di blocco sono auto per impostazione predefinita
  • La loro durata è legata al blocco
  • I nomi interni possono nascondere quelli esterni
  • Le variabili locali non vengono inizializzate automaticamente
  • Ogni chiamata a una funzione riceve nuove variabili locali

Domande Frequenti

La lezione «auto e ambito locale» è gratuita?

Sì — il testo completo di «auto e ambito locale» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 4 lezioni in totale.

Cosa imparerò in «auto e ambito locale»?

Variabili a livello di blocco Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C Academy?

Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «auto e ambito locale»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C Academy?

Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. auto e ambito locale
  2. Variabili static
  3. extern e globale
  4. register e const
← Torna a C Academy