حافظه خودکار
متغیرهای در حافظه خودکار همیشه در درون یک تابع توصیف می‌شوند و نسبت به آن تابع متغیر محلی‌اند؛ یعنی حوزه و قلمرو کاربرد آنها به همان تابع محدود است. بنابراین متغیرهایی که در توابع گوناگون در این کلاس حافظه تعریف شوند،‌ از یکدیگر مستقل خواهند بود حتی اگر اسامی یکسانی داشته باشند.
هر متغیری که در درون یک تابع اعلان شود، از لحاظ کلاس حافظه، به طور پیش‌فرض خودکار در نظر گرفته می‌شود؛ یعنی قرار دادن کلمه کلیدی auto در جلوی آنها ضروری نیست. پس اگر کلاس حافظه متغیری غیر از خودکار باشد، باید حتماً کلمه کلیدی مربوط به آن کلاس حافظه، به طور صریح مشخص شود. می‌توان هنگام توصیف این گونه متغیرها به آنها مقدار اولیه نیز اختصاص داد.
مثال  در زیر، متغیرهایی با استفاده از توصیف auto و هم بدون آن نمایش داده شده‌اند که هم ارزند.

vhh

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