چه تفاوتی بین متغیرهای محلی و سراسری وجود دارد
خلاصه
1404/05/22
متغیرهای محلی و سراسری دو نوع اصلی متغیر در برنامهنویسی هستند که از نظر **محدوده دسترسی (Scope)** و **طول عمر (Lifetime)** با هم تفاوت دارند: **1. متغیرهای محلی (Local Variab

متغیرهای محلی و سراسری دو نوع اصلی متغیر در برنامهنویسی هستند که از نظر **محدوده دسترسی (Scope)** و **طول عمر (Lifetime)** با هم تفاوت دارند:
**1. متغیرهای محلی (Local Variables):**
* **محدوده دسترسی:**
* متغیرهای محلی فقط در داخل بلوکی که در آن تعریف شدهاند قابل دسترسی هستند. این بلوک میتواند یک تابع، یک حلقه (for یا while)، یک شرط (if یا else) و یا هر بلوک کد محصور شده با {} باشد.
* به عبارت دیگر، متغیر محلی فقط در همان تابع یا بلوکی که در آن تعریف شده "زندگی" میکند و خارج از آن وجود ندارد.
* **طول عمر:**
* متغیرهای محلی زمانی ایجاد میشوند که بلوک مربوطه (مثلاً تابع) اجرا میشود و زمانی که اجرای بلوک به پایان میرسد، از بین میروند.
* مقدار آنها بین فراخوانیهای مختلف یک تابع (یا اجرای بلوک) حفظ نمیشود. هر بار که بلوک اجرا میشود، یک متغیر محلی جدید ایجاد میشود.
* **مثال (C++):**
```c++
#include
void myFunction() {
int x = 10; // x یک متغیر محلی است
std::cout << "Inside myFunction: x = " << x << std::endl;
}
int main() {
myFunction();
// std::cout << x; // خطا! x در اینجا قابل دسترسی نیست
return 0;
}
```
در این مثال، `x` یک متغیر محلی است که در داخل تابع `myFunction` تعریف شده است. فقط در داخل این تابع قابل دسترسی است و سعی در دسترسی به آن در تابع `main` منجر به خطا میشود.
**2. متغیرهای سراسری (Global Variables):**
* **محدوده دسترسی:**
* متغیرهای سراسری در خارج از تمام توابع و بلوکها تعریف میشوند.
* آنها از هر نقطهای در برنامه، از جمله داخل توابع و بلوکها، قابل دسترسی هستند.
* **طول عمر:**
* متغیرهای سراسری در ابتدای اجرای برنامه ایجاد میشوند و تا پایان اجرای برنامه زنده میمانند.
* مقدار آنها در طول اجرای برنامه حفظ میشود و میتواند توسط توابع مختلف تغییر کند.
* **مثال (C++):**
```c++
#include
int globalVar = 20; // globalVar یک متغیر سراسری است
void myFunction() {
globalVar = 30; // تغییر مقدار متغیر سراسری
std::cout << "Inside myFunction: globalVar = " << globalVar << std::endl;
}
int main() {
std::cout << "Before myFunction: globalVar = " << globalVar << std::endl;
myFunction();
std::cout << "After myFunction: globalVar = " << globalVar << std::endl;
return 0;
}
```
در این مثال، `globalVar` یک متغیر سراسری است که در خارج از هر تابعی تعریف شده است. هم در تابع `main` و هم در تابع `myFunction` قابل دسترسی است و مقدار آن در تابع `myFunction` تغییر میکند.
**خلاصه تفاوتها:**
| ویژگی | متغیر محلی | متغیر سراسری |
| --------------- | ----------------------------------------- | --------------------------------------------- |
| محدوده دسترسی | محدود به بلو
برخی از محصولات شرکت مهندسی آبان رایان البرز
سایر مقالات آموزشی شرکت نرم افزاری آبان رایان البرز :
- مفهوم JSON و کاربرد آن در انتقال داده چیست
- تفاوت بین REST و SOAP در طراحی API چیست
- Nodejs چگونه کار میکند
- تفاوت بین Java و Kotlin در توسعه اپ موبایل چیست
- جاوا اسکریپت چه نقشی در توسعه وب دارد
- زبان Python در چه حوزههایی کاربرد دارد
- تفاوت زبان برنامهنویسی C و C چیست
- Continuous Integration چه مزایایی دارد
- نقش واحد تست Unit Test در توسعه نرمافزار چیست
- خطای منطقی در برنامهنویسی چیست
- چه تفاوتی بین کامپایلر و مفسر وجود دارد
- الگوهای طراحی نرمافزار Design Patterns کداماند
- اصول کدنویسی تمیز Clean Code چیست
- Git چیست و چرا در برنامهنویسی اهمیت دارد
- محیطهای توسعه یکپارچه IDE چه نقشی در برنامهنویسی دارند
- چگونه میتوان یک زبان برنامهنویسی جدید را یاد گرفت