auto والنطاق المحلي
متغيرات على مستوى الكتلة
auto والنطاق المحلي درس مجاني في C Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C Academy 4 دروس في المجموع.
ما هو النطاق
النطاق هو منطقة الكود التي يكون فيها الاسم مرئيًا. في C، لا تكون المتغيرات المعلنة داخل كتلة مرئية إلا ضمن تلك الكتلة.
#include <stdio.h>
int main(void) {
int x = 5;
printf("x = %d\n", x);
return 0;
}فئة التخزين auto
تكون المتغيرات المحلية من نوع auto افتراضيًا. ونادرًا ما تُكتب هذه الكلمة المفتاحية لأنها مفهومة ضمنيًا لكل متغير في نطاق كتلة.
#include <stdio.h>
int main(void) {
auto int n = 42;
printf("n = %d\n", n);
return 0;
}نطاق الكتلة
ينشئ زوج من الأقواس كتلة جديدة. وتختفي المتغيرات الموجودة داخلها عند انتهاء الكتلة.
#include <stdio.h>
int main(void) {
{
int inner = 10;
printf("inner = %d\n", inner);
}
return 0;
}مدة الحياة التلقائية
يُنشأ متغير auto عند دخول كتلته، ويُدمَّر عند الخروج منها. وتُسمّى هذه الفترة مدة حياته.
#include <stdio.h>
int main(void) {
for (int i = 0; i < 2; i++) {
int fresh = i * 10;
printf("fresh = %d\n", fresh);
}
return 0;
}حجب الأسماء
يمكن لمتغير داخلي أن يحجب متغيرًا خارجيًا له الاسم نفسه. ويكون الاسم الداخلي هو المعتمد داخل كتلته.
#include <stdio.h>
int main(void) {
int x = 1;
{
int x = 99;
printf("inner x = %d\n", x);
}
printf("outer x = %d\n", x);
return 0;
}معاملات الدوال محلية
المعاملات متغيرات محلية أيضًا. وتبقى موجودة فقط أثناء تنفيذ الدالة.
#include <stdio.h>
int square(int n) {
return n * n;
}
int main(void) {
printf("%d\n", square(6));
return 0;
}المتغيرات المحلية غير المهيأة
لا يُصفَّر متغير auto تلقائيًا. وقراءته قبل إسناد قيمة إليه تعطي قيمة عشوائية. احرص دائمًا على تهيئته.
#include <stdio.h>
int main(void) {
int x = 0;
x = x + 5;
printf("x = %d\n", x);
return 0;
}متغيرات محلية مستقلة لكل استدعاء
يحصل كل استدعاء لدالة على نسخة جديدة ومستقلة من متغيراتها المحلية.
#include <stdio.h>
void greet(void) {
int count = 1;
printf("count = %d\n", count);
}
int main(void) {
greet();
greet();
return 0;
}لماذا تُعد المتغيرات المحلية مفيدة
يحافظ النطاق المحلي على احتواء المتغيرات، مما يمنع التداخل غير المقصود بين أجزاء البرنامج.
#include <stdio.h>
int main(void) {
int a = 3;
{
int b = 4;
printf("a + b = %d\n", a + b);
}
return 0;
}الكتل المتداخلة
يمكن أن تتداخل الكتل. وتستطيع الكتل الداخلية قراءة المتغيرات الخارجية، لكن لا تستطيع الكتل الخارجية قراءة المتغيرات الداخلية.
#include <stdio.h>
int main(void) {
int outer = 1;
{
int middle = 2;
{
int inner = 3;
printf("%d\n", outer + middle + inner);
}
}
return 0;
}النطاق والحلقات
يقتصر نطاق المتغير المعلن في ترويسة for على الحلقة فقط.
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 1; i <= 4; i++)
sum += i;
printf("sum = %d\n", sum);
return 0;
}تحقق سريع
اختبر مدى فهمك لـ auto والنطاق المحلي.
مراجعة: auto والنطاق المحلي
لقد تعلمت كيفية عمل المتغيرات المحلية.
- تكون المتغيرات في نطاق الكتلة من نوع
autoافتراضيًا - ترتبط مدة حياتها بالكتلة
- يمكن للأسماء الداخلية حجب الأسماء الخارجية
- لا تُهيَّأ المتغيرات المحلية تلقائيًا
- يحصل كل استدعاء للدالة على متغيرات محلية جديدة
تعلم C مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 39
- الدروس
- 144
الأسئلة الشائعة
هل درس «auto والنطاق المحلي» مجاني؟
نعم — نص درس «auto والنطاق المحلي» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 4 دروس في المجموع.
ماذا ستتعلم في «auto والنطاق المحلي»؟
متغيرات على مستوى الكتلة تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟
لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «auto والنطاق المحلي»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟
نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- auto والنطاق المحلي
- المتغيرات static
- extern والعالمي
- register وconst