آموزش C++ محدوده تعریف متغیرها

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

به طور کلی سه محدوده یا scope برای تعریف یا اعلان متغیر وجود دارد:

  • داخل یک تابع یا یک بلوک که متغیرهای محلی (local variable) نامیده می شود.
  • بعنوان پارامترهای تابع که پارامترهای رسمی (formal parameters) نامیده میشود.
  • خارج از تمام توابع که متغیرهای سراسری (global variables) نامیده میشود.

توجه:

توابع و پارامترهای آنها را در فصل های بعدی به طور کامل توضیح خواهیم  داد. در اینجا قصد داریم در مورد متغیرهای محلی و سراسری صحبت کنیم.

متغیرهای محلی (local variable)

متغیر هایی که در داخل یک تابع یا یک حوزه اعلان میشوند متغیرهای محلی نامیده می شوند. این متغیر ها تنها در محدوده ای که تعریف شده اند (تابع یا محدوده) میتوانند استفاده شوند. متغیرهای محلی برای توابعی که خارج از آنها باشد قابل شناسایی نیستند. در اینجا مثالی برای استفاده از متغیرهای محلی در C++ خواهیم داشت:
 

#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;
}

متغیرهای سراسری

متغیرهای سراسری در خارج از تمام توابع و به طور معمول در بالای برنامه تعریف می شود و مقدار خود را در تمام مدت برنامه حفظ خواهند کرد.
یک متغیر سراسری می تواند توسط هر تابعی قابل دسترسی باشد. به عبارت دیگر برای استفاده در تمام مدت برنامه بعد از اعلان در دسترس است. در اینجا مثالی برای استفاده از متغیر سراسری و محلی در زبان C++  ارائه خواهیم داد:

 

#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;
}

یک برنامه می تواند نامی یکسان و مشابه برای متغیر سراسری ومحلی داشته باشد. اما در نظر داشته باشید که متغیر محلی به متغیر سراسری اولیت دارد. برای مثال:
 

#include <iostream>
using namespace std;
 
// Global variable declaration:
int g = 20;
 
int main () {
   // Local variable declaration:
   int g = 10;
 
   cout << g;
 
   return 0;
}

پس از کامپایل و اجرای کد بالا نتیجه زیر نمایش داده خواهد شد.

10


مقداردهی متغیرهای سراسری و محلی در C++

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

در جدول زیر مقدار پیش فرضی که یک متغیر سراسری بر اساس نوع داده ای خود می گیرد را آورده ایم:

نوع داده مقدار پیش فرض
int 0
char '\0'
float 0
double 0
pointer NULL


این یک تمرین خوب برای این است که متغیر ها را به درستی مقداردهی کنید. در غیر این صورت در برخی موارد برنامه ها می توانند نتایج غیرمنتظرهای را تولید کند.

برای درج نظر و یا طرح سوالات خود لطفا در سایت ثبت نام کنید و یا وارد سایت شوید

نظرات کاربران

برای این مطلب تاکنون نظری ارسال نشده است. شما اولین نفر باشید