0Pricing
C Academy · Lección

auto y ámbito local

Variables a nivel de bloque

auto y ámbito local es una lección gratuita de C Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C Academy incluye 4 lecciones en total.

Qué es el ámbito

El ámbito es la región del código en la que un nombre es visible. En C, las variables declaradas dentro de un bloque solo son visibles dentro de ese bloque.

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

La clase de almacenamiento auto

Las variables locales son auto de forma predeterminada. La palabra clave rara vez se escribe porque está implícita en toda variable con ámbito de bloque.

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

Ámbito de bloque

Un par de llaves crea un bloque nuevo. Las variables que contiene dejan de existir cuando termina el bloque.

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

Duración automática

Una variable auto se crea al entrar en su bloque y se destruye al salir de él. Esto constituye su duración.

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

Ocultación de nombres

Una variable interna puede ocultar otra externa con el mismo nombre. Dentro de su bloque prevalece el nombre 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;
}

Los parámetros de función son locales

Los parámetros también son variables locales. Solo existen mientras se ejecuta la función.

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

Variables locales no inicializadas

Una variable auto no se inicializa automáticamente con cero. Leerla antes de asignarle un valor produce basura. Inicialícela siempre.

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

Locales por llamada

Cada llamada a una función obtiene su propia copia nueva de las variables locales.

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

Por qué son buenas las variables locales

El ámbito local mantiene las variables contenidas y evita interferencias accidentales entre distintas partes del programa.

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

Bloques anidados

Los bloques pueden anidarse. Los bloques internos pueden leer las variables externas, pero los bloques externos no pueden leer las internas.

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

Ámbito y bucles

Una variable declarada en la cabecera de un for tiene ámbito únicamente dentro del bucle.

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

Comprobación rápida

Compruebe su comprensión de auto y del ámbito local.

Repaso: auto y ámbito local

Ha aprendido cómo se comportan las variables locales.

  • Las variables con ámbito de bloque son auto de forma predeterminada
  • Su duración está vinculada al bloque
  • Los nombres internos pueden ocultar a los externos
  • Las variables locales no se inicializan automáticamente
  • Cada llamada a una función obtiene variables locales nuevas

Preguntas frecuentes

¿La lección «auto y ámbito local» es gratis?

Sí — el texto completo de «auto y ámbito local» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C Academy, actualiza a CoddyKit PRO. El curso de C Academy incluye 4 lecciones en total.

¿Qué aprenderé en «auto y ámbito local»?

Variables a nivel de bloque Practicas C Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C Academy?

No se requiere experiencia previa. C Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «auto y ámbito local»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C Academy?

Sí. Cada lección de C Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. auto y ámbito local
  2. Variables static
  3. extern y global
  4. register y const
← Volver a C Academy