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
autopor 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
- auto e escopo local
- Variáveis static
- extern e global
- register e const