0Pricing
C Academy · Aula

auto e escopo local

Variáveis no nível do bloco.

auto e escopo local é uma aula grátis de C Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C Academy inclui 4 aulas no total.

O que é escopo

Escopo é a região do código em que um nome está visível. Em C, as variáveis declaradas dentro de um bloco ficam visíveis somente nesse bloco.

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

A classe de armazenamento automática

Por padrão, as variáveis locais são auto. Essa palavra-chave raramente é escrita, pois é implícita para toda variável com escopo de bloco.

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

Escopo de bloco

Um par de chaves cria um novo bloco. As variáveis dentro dele deixam de existir quando o bloco termina.

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

Tempo de vida automático

Uma variável auto é criada quando seu bloco é iniciado e destruída quando ele é encerrado. Esse é o seu tempo de vida.

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

Ocultação de nomes

Uma variável interna pode ocultar uma variável externa com o mesmo nome. Dentro do bloco, o nome interno tem prioridade.

#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;
}

Parâmetros de função são locais

Os parâmetros também são variáveis locais. Eles existem somente enquanto a função está em execução.

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

Variáveis locais não inicializadas

Uma variável auto não é zerada automaticamente. Lê-la antes de atribuir um valor produz um valor indefinido. Inicialize-a sempre.

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

Locais por chamada

Cada chamada de uma função recebe sua própria cópia nova das variáveis locais.

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

Por que as variáveis locais são úteis

O escopo local mantém as variáveis isoladas, evitando interferências acidentais entre partes do programa.

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

Blocos aninhados

Os blocos podem ser aninhados. Os blocos internos podem ler as variáveis externas, mas os blocos externos não podem ler as internas.

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

Escopo e laços

Uma variável declarada no cabeçalho de um for fica restrita somente ao laço.

#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ção rápida

Verifique sua compreensão sobre auto e o escopo local.

Recapitulação: armazenamento automático e escopo local

Você aprendeu como as variáveis locais se comportam.

  • As variáveis com escopo de bloco são auto por padrão
  • O tempo de vida delas está ligado ao bloco
  • Os nomes internos podem ocultar os externos
  • As variáveis locais não são inicializadas automaticamente
  • Cada chamada de função recebe novas variáveis locais

Perguntas Frequentes

A aula “auto e escopo local” é grátis?

Sim — o texto completo de “auto e escopo local” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C Academy, atualize para CoddyKit PRO. O curso de C Academy inclui 4 aulas no total.

O que vou aprender em “auto e escopo local”?

Variáveis no nível do bloco. Você pratica C Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C Academy?

Nenhuma experiência prévia é necessária. C Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “auto e escopo local”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C Academy?

Sim. Cada aula de C Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. auto e escopo local
  2. Variáveis static
  3. extern e global
  4. register e const
← Voltar para C Academy