
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری 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)
متغیرهایی که داخل بدنه ی تابع یا قطعه کد تعریف می شوند در اصطلاح متغیرهای محلی خوانده می شوند. تنها دستورهایی که داخل بدنه ی تابع یا قطعه کد تعریف شده اند، امکان دسترسی و استفاده از این متغیرها را دارند. متغیرهایی که به صورت محلی اعلان می شوند برای توابع خارج از حوزه ی دسترسی خود قابل شناسایی نیستند. کد زیر تعدادی متغیر محلی تعریف می کند:
#includeusing 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 خارج از بدنه ی توابع و معمولا در بالای برنامه تعریف می شوند. این نوع متغیرها مقادیر خود را تا پایان زمان اجرای برنامه و به عبارتی در طول چرخه ی حیات برنامه حفظ می کنند.
تمامی توابع داخل برنامه به متغیرهایی که به صورت سراسری تعریف شده، دسترسی دارند.
متغیری که به صورت سراسری تعریف می شود، بلافاصله پس از اعلان و در طول اجرای برنامه در دسترس تمامی توابع قرار می گیرد. در زیر مثالی را مشاهده می کنید که در آن متغیرهای سراسری و محلی تعریف شده اند:
#includeusing 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
یک برنامه می تواند متغیرهای محلی و سراسری هم نام داشته باشد. اما لازم به ذکر است که متغیرهایی که به صورت محلی تعریف شده اند، بر متغیرهای سراسری اولویت داشته و تابع اول به مقدار متغیر محلی دسترسی دارد:
#includeusing namespace std; // Global variable declaration: int g = 20; int main () { // Local variable declaration: int g = 10; cout << g; return 0; }
خروجی کد فوق به صورت زیر می باشد. همان طور که مشاهده می کنید دو متغیر به نام g که یکی محلی و دیگری سراسری می باشد در اپلیکیشن فوق تعریف شده، اما متغیر محلی و اعلان شده داخل بدنه ی تابع در خروجی چاپ گردیده است:
10
مقداردهی اولیه ی متغیرهای محلی و سراسری (initialization)
زمانی که یک متغیر به صورت محلی و داخل قطعه کد تعریف می شود، سیستم آن را مقداردهی اولیه نمی کند بلکه توسعه دهنده می بایست مقدار اولیه را به آن تخصیص دهد. اما متغیرهای سراسری که در بالای برنامه اعلان می شوند را سیستم به صورت خودکار مقداردهی اولیه می کند. مقدار اولیه ای که به این متغیرها تخصیص می یابد، به شرح زیر می باشد:
توصیه می شود که متغیرها را به طور صحیح مقداردهی اولیه نمایید چرا که در غیر این صورت برنامه نتیجه ی غیر منتظره را تولید می کند.