مهم نیست که به چه زبانی برنامه نویسی می کنید,در هر زبان برنامه نویسی سه نوع متغیر وجود دارد :

متغیرهای محلی (local) :

متغیرهایی که در بدنه تابع معرفی می شوند، متغیرهای محلی هستند که فقط در همان تابعی که معرفی شده اند قابل استفاده هستند. پارامترهای تابع نیز که در عنوان تابع معرفی شده اند متغیرهای محلی هستند.
متغیرهای سراسری (global):
این متغیرها را می توان خارج از توابع مثلاً ابتدای برنامه قبل از تعریف تابع Main یا قبل از تعریف هر تابع دیگر معرفی کرد. متغیرهایی که خارج از توابع معرفی شوند، توسط کلیه توابعی که از آن به بعد تعریف شده اند، قابل استفاده اند.
پس از هر فراخوانی همین که اجرای تابع خاتمه یافت، متغیرهای محلی آن از بین می روند. ولی متغیرهای سراسری تا پایان اجرای تابع mainفعال و قابل استفاده اند
حوزه دسترسی به متغیر:
محدوده ای که هر متغیر در آن قابل دسترسی است حوزه دسترسی نامیده می شود. متغیرهایی که به صورت محلی در ابتدای تابع معرفی شده اند دارای حوزه دسترسی تابع هستند. متغیرهایی که در یک بلوک به طور محلی تعریف شده اند دارای حوزه دسترسی بلوک هستند . متغیرهایی که خارج از توابع معرفی شده اند دارای حوزه دسترسی فایل می باشند.
کلاس های حافظه دارای چهار نوع اتوماتیک، ثبات، خارجی، ایستا هستند که به ترتیب توسط کلمات auto ،، register ، extern و static مشخص می شوند.