یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی با تخفیف ویژه، فقط با کد AI84 دوره هوش مصنوعی با تخفیف ویژه، فقط با کد AI84
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری MVC Core از مبانی تا پیشرفته: شی‌گرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژه‌های کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!

مشاهده بیشتر

آموزش مفهوم Variable Scope در C++

آموزش مفهوم Variable Scope در ++C - حوزه ی تعریف و دسترسی متغیر در ++C

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


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

در آموزش های آتی با مفهوم تابع و پارامترهای آن آشنا خواهید شد. در اینجا صرفا به شرح مفهوم متغیرهای محلی و سراسری می پردازیم.


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

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


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

خروجی به صورت زیر می باشد:


30


متغیرهای سراسری (Global variables)

متغیرهای سراسری یا Global variables خارج از بدنه ی توابع و معمولا در بالای برنامه تعریف می شوند. این نوع متغیرها مقادیر خود را تا پایان زمان اجرای برنامه و به عبارتی در طول چرخه ی حیات برنامه حفظ می کنند.

تمامی توابع داخل برنامه به متغیرهایی که به صورت سراسری تعریف شده، دسترسی دارند.

متغیری که به صورت سراسری تعریف می شود، بلافاصله پس از اعلان و در طول اجرای برنامه در دسترس تمامی توابع قرار می گیرد. در زیر مثالی را مشاهده می کنید که در آن متغیرهای سراسری و محلی تعریف شده اند:


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

خروجی:

30


یک برنامه می تواند متغیرهای محلی و سراسری هم نام داشته باشد. اما لازم به ذکر است که متغیرهایی که به صورت محلی تعریف شده اند، بر متغیرهای سراسری اولویت داشته و تابع اول به مقدار متغیر محلی دسترسی دارد:


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

خروجی کد فوق به صورت زیر می باشد. همان طور که مشاهده می کنید دو متغیر به نام g که یکی محلی و دیگری سراسری می باشد در اپلیکیشن فوق تعریف شده، اما متغیر محلی و اعلان شده داخل بدنه ی تابع در خروجی چاپ گردیده است:


10


مقداردهی اولیه ی متغیرهای محلی و سراسری (initialization)

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


مقدار اولیه ای که سیستم به متغیر سراسری اختصاص می دهد
نوع داده ای
0
int
'\0'
char
0
float
0
double
NULL
pointer

توصیه می شود که متغیرها را به طور صحیح مقداردهی اولیه نمایید چرا که در غیر این صورت برنامه نتیجه ی غیر منتظره را تولید می کند.

1396/04/08 5171 1816
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...