حوزه متغیرها در زبان C++
حوزه (Scope) یک منطقه از برنامه است که برنامه نویس می تواند داده ها و متغیرهای مورد نیاز خود را در آن منطقه تعریف کند. در کل متغیرها را می توان در سه حوزه زیر تعریف کرد:
- داخل یک تابع یا یک بلوک (متغیرهای محلی)
- به عنوان پارامترهای یک تابع (پارامترهای رسمی)
- خارج از تمام توابع و حوزه ها (متغیرهای سراسری)
در این بخش در مورد اینکه تابع چیست و همچنین متغیرهای محلی و سراسری بحث خواهیم کرد.
متغیرهای محلی (Local Variables)
متغیرهایی که در داخل یک تابع یا یک حوزه تعریف شده باشند، به عنوان متغیرهای محلی در نظر گرفته می شوند. این نوع متغیرها فقط می توانند در داخل تابع یا حوزه ای که تعریف شده اند مورد استفاده قرار گیرند.
مثال زیر نحوه استفاده از متغیرهای محلی در زبان C++ را نشان می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <iostream> using namespace std; int main () { // Local variable declaration: int a, b; int c; // actual initialization a = 10; b = 20; c = a + b; cout << c; return 0; } |
متغیرهای سراسری (Global Variables)
متغیرهای سراسری در زبان برنامه نویسی C++خارج از تمام توابع و حوزه، معمولا در بالای برنامه تعریف می شوند و مقدار خود را تاز مانی که برنامه در حال اجرا باشد، حفظ می کنند. متغیرهای سراسری می توانند در همه توابع و حوزه ها استفاده شوند. به عبارت دیگر، متغیرهای سراسری برای استفاده شدن در کل بخش های برنامه تعریف می شود.
مثال زیر نحوه استفاده از متغیرهای سراسری در زبان C++ را نشان می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <iostream> using namespace std; // Global variable declaration: int g; int main () { // Local variable declaration: int a, b; // actual initialization a = 10; b = 20; g = a + b; cout << g; return 0; } |
در یک برنامه متغیرهای محلی و سراسری می توانند نام مشابهی داشته باشند، اما در داخل یک حوزه یا تابع متغیر محلی بر متغیر سراسری اولویت دارد. مثلا:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <iostream> using namespace std; // Global variable declaration: int g = 20; int main () { // Local variable declaration: int g = 10; cout << g; return 0; } |
زمانی که کد بالا توسط کامپایلر زبان C++ و اجرا شود نتیجه زیر را تولید می کند:
1 | 10 |
مقداردهی اولیه به متغیرهای محلی و سراسری
هنگام تعریف یک متغیر سراسری اگه به آن مقداری اختصاص نیابد، سیستم به طور خودکار مقدار پیش فرض نوع متغیر را به آن اختصاص می دهد. اما متغیرهای محلی هنگام تعریف شدن توسط سیستم مقداردهی اولیه نمی شوند.
در جدول زیر مقادیر پیش فرض برای انواع داده اصلی در زبان C++ را مشاهده می کنید:
نوع داده | مقدار پیش فرض |
int | 0 |
char | ‘\0’ |
float | 0 |
double | 0 |
pointer | NULL |
توصیه می شود همیشه مقدار اولیه متغیرها را مشخص کنید، زیرا ممکن است با نتایج غیر منتظره ای در هنگام اجرای برنامه رو به رو شوید.
هیچ نظری ثبت نشده است