نوع خاص داده ها را مي توان در يک متغير ذخيره کرد. به عنوان مثال: int، float، char و غيره.


کلاس ذخيره سازي دو ويژگي مختلف يک متغير را کنترل مي کند: طول عمر (تعيين اينکه متغير چه مدت مي تواند وجود داشته باشد) و محدوده (تعيين اينکه کدام بخش از برنامه بتواند به آن دسترسي پيدا کند).


بسته به کلاس ذخيره سازي متغير، مي توان آن را به 5 نوع اصلي تقسيم کرد:



متغير محلي (local variable)


متغير تعريف شده در داخل تابع (تعريف شده در داخل بدنه تابع بين براکت ها) متغير محلي يا متغير خودکار(automatic ) ناميده مي شود.


محدوده دسترسي آن تنها محدود به تابع تعريف شده است. به عبارت ساده، متغير محلي مي تواند تنها در داخل تابع قابل دسترسي باشد.


هنگامي که اجراي تابع تمام مي شود، طول عمر متغير محلي به پايان مي رسد (از بين مي رود).


مثال 1 : متغير محلي



  1. #include <iostream>

  2. using namespace std;

  3. void test();

  4. int main()

  5. {

  6. // local variable to main()

  7. int var = 5;

  8. test();

  9. // illegal: var1 not declared inside main()

  10. var1 = 9;

  11. }

  12. void test()

  13. {

  14. // local variable to test()

  15. int var1;

  16. var1 = 6;

  17. // illegal: var not declared inside test()

  18. cout << var;

  19. }


متغير var را نمي توان داخل test()و var1 را نمي توان در داخل تابع ()main استفاده کرد.


کليد واژه auto نيز قبل از تعريف متغيرهاي محلي استفاده مي شود: auto int var؛


اما، بعد از C ++ 11، auto معني متفاوتي پيدا کرد و نبايد براي تعريف متغيرهاي محلي استفاده شود.


متغير سراسري (global variable)


اگر متغير بيرون از تمام توابع تعريف شود، به آن متغير سراسري مي گوييم.


محدوده دسترسي متغير سراسري کل برنامه است. به اين معني که مي تواند در هر بخش از برنامه مورد استفاده قرار گيرد و تغيير يابد.


به همين ترتيب، زماني که برنامه به پايان برسد، طول عمر متغير هم به پايان مي رسد.


مثال 2 : متغير سراسري



  1. #include <iostream>

  2. using namespace std;

  3. // Global variable declaration

  4. int c = 12;

  5. void test();

  6. int main()

  7. {

  8. ++c;

  9. // Outputs 13

  10. cout << c <<endl;

  11. test();

  12. return 0;

  13. }

  14. void test()

  15. {

  16. ++c;

  17. // Outputs 14

  18. cout << c;

  19. }


خروجي



13


14



در برنامه بالا c متغير سراسري است.


متغير براي هر دو تابع ()main و ()test در دسترس است.


مشخصات

تبلیغات

محل تبلیغات شما
محل تبلیغات شما محل تبلیغات شما

آخرین وبلاگ ها

برترین جستجو ها

آخرین جستجو ها

فلیر نقد برسي قیمت سپتیک تانک Kelly Michelle بوم نقاشی https://dr-majidghiasi.ir زورخانه شهدای حسن آباد مشیر