PDA

View Full Version : مبتدی: تفاوت متغیر های استاتیک و اتوماتیک



Moein.sk
شنبه 28 تیر 1393, 11:33 صبح
سلام خسته نباشید

در حال یاد گیری زبان C++ هستم به بخش کلاس های حافظه و حوزه و پیوند رسیدم
راستش بجز مورد اول ینی کلاس حافظه، درک درستی از حوزه و پیود دارم ولی این کلاس حافظه رو متوجه نمیشم اصلا مطلبو نگرفتم

اگه میشه کسی لطف کنه مختصرو واضح شرح بده ک متغیرای استاتیک (static) چه فرقی با متغیرهای اتوماتیک (auto) دارن ؟

وچرا متغیر های auto و register در دسته متغیرهای، کلاس حافظه اتوماتیک دسته بندی میشن و متغیرهایی با اعلان static و extern از نوع کلاس حافظه استاتیک دسته بندی میشن ؟ شباهت ها و تفاوتشون چیه ؟

rahnema1
شنبه 28 تیر 1393, 11:47 صبح
سلام
در استاندارد جدید کلمه register منسوخ شده و auto هم کاربرد دیگه ای پیدا کرده در این پست توضیحات بیشتری داده شده:
http://barnamenevis.org/showthread.php?448698

sa1378
شنبه 28 تیر 1393, 14:25 عصر
سلام خسته نباشید

در حال یاد گیری زبان C++‎‎‎ هستم به بخش کلاس های حافظه و حوزه و پیوند رسیدم
راستش بجز مورد اول ینی کلاس حافظه، درک درستی از حوزه و پیود دارم ولی این کلاس حافظه رو متوجه نمیشم اصلا مطلبو نگرفتم

اگه میشه کسی لطف کنه مختصرو واضح شرح بده ک متغیرای استاتیک (static) چه فرقی با متغیرهای اتوماتیک (auto) دارن ؟

وچرا متغیر های auto و register در دسته متغیرهای، کلاس حافظه اتوماتیک دسته بندی میشن و متغیرهایی با اعلان static و extern از نوع کلاس حافظه استاتیک دسته بندی میشن ؟ شباهت ها و تفاوتشون چیه ؟

دقیقا یادم نیست ولی فکر کنم وقتی مثلا توی یک تابع تعریف میکنید:
static int a=50;

و سپس توی اون تابع عملیات روی متغییر a انجام میدیدن، اگه دوباره تابع رو صدا بزنید دیگه مقدراش در تعریف اول برابر 50 قرار نمیگیره و مقدار قبلیش رو حفظ میکنه