تفاوت متغیر های استاتیک و اتوماتیک
سلام خسته نباشید
در حال یاد گیری زبان C++ هستم به بخش کلاس های حافظه و حوزه و پیوند رسیدم
راستش بجز مورد اول ینی کلاس حافظه، درک درستی از حوزه و پیود دارم ولی این کلاس حافظه رو متوجه نمیشم اصلا مطلبو نگرفتم
اگه میشه کسی لطف کنه مختصرو واضح شرح بده ک متغیرای استاتیک (static) چه فرقی با متغیرهای اتوماتیک (auto) دارن ؟
وچرا متغیر های auto و register در دسته متغیرهای، کلاس حافظه اتوماتیک دسته بندی میشن و متغیرهایی با اعلان static و extern از نوع کلاس حافظه استاتیک دسته بندی میشن ؟ شباهت ها و تفاوتشون چیه ؟
نقل قول: تفاوت متغیر های استاتیک و اتوماتیک
سلام
در استاندارد جدید کلمه register منسوخ شده و auto هم کاربرد دیگه ای پیدا کرده در این پست توضیحات بیشتری داده شده:
https://barnamenevis.org/showthread.php?448698
نقل قول: تفاوت متغیر های استاتیک و اتوماتیک
نقل قول:
نوشته شده توسط
Moein.sk
سلام خسته نباشید
در حال یاد گیری زبان C++ هستم به بخش کلاس های حافظه و حوزه و پیوند رسیدم
راستش بجز مورد اول ینی کلاس حافظه، درک درستی از حوزه و پیود دارم ولی این کلاس حافظه رو متوجه نمیشم اصلا مطلبو نگرفتم
اگه میشه کسی لطف کنه مختصرو واضح شرح بده ک متغیرای استاتیک (static) چه فرقی با متغیرهای اتوماتیک (auto) دارن ؟
وچرا متغیر های auto و register در دسته متغیرهای، کلاس حافظه اتوماتیک دسته بندی میشن و متغیرهایی با اعلان static و extern از نوع کلاس حافظه استاتیک دسته بندی میشن ؟ شباهت ها و تفاوتشون چیه ؟
دقیقا یادم نیست ولی فکر کنم وقتی مثلا توی یک تابع تعریف میکنید:
static int a=50;
و سپس توی اون تابع عملیات روی متغییر a انجام میدیدن، اگه دوباره تابع رو صدا بزنید دیگه مقدراش در تعریف اول برابر 50 قرار نمیگیره و مقدار قبلیش رو حفظ میکنه