متغیر تعریف شده در داخل تابع (تعریف شده در داخل بدنه تابع بین براکت ها) متغیر محلی یا متغیر خودکار(automatic ) نامیده می شود.
محدوده دسترسی آن تنها محدود به تابع تعریف شده است. به عبارت ساده، متغیر محلی می تواند تنها در داخل تابع قابل دسترسی باشد.
هنگامی که اجرای تابع تمام می شود، طول عمر متغیر محلی به پایان می رسد (از بین می رود).
اگر متغیر بیرون از تمام توابع تعریف شود، به آن متغیر سراسری می گوییم.
محدوده دسترسی متغیر سراسری کل برنامه است. به این معنی که می تواند در هر بخش از برنامه مورد استفاده قرار گیرد و تغییر یابد.
به همین ترتیب، زمانی که برنامه به پایان برسد، طول عمر متغیر هم به پایان می رسد.