المتغيرات الثابتة في C

كيفية التعامل مع المتغيرات الثابتة في لغة سي

داخل الوظيفة ، يمكنك تهيئة ملفمتغير ثابتباستخدامstaticكلمة رئيسية.

لقد قلت "داخل دالة" ، لأن المتغيرات العامة تكون ثابتة بشكل افتراضي ، لذلك ليست هناك حاجة لإضافة الكلمة الأساسية.

ما هو المتغير الثابت؟ يتم تهيئة المتغير الثابت إلى 0 إذا لم يتم تحديد قيمة أولية ، ويحتفظ بالقيمة عبر استدعاءات الوظائف.

ضع في اعتبارك هذه الوظيفة:

int incrementAge() {
  int age = 0;
  age++;
  return age;
}

إذا اتصلناincrementAge()مرة واحدة ، سوف نحصل عليها1كقيمة العودة. إذا أطلقنا عليها أكثر من مرة ، فسنحصل دائمًا على 1 مرة أخرى ، لأنageهو متغير محلي وتمت إعادة تهيئته إلى0في كل مكالمة وظيفة واحدة.

إذا قمنا بتغيير الوظيفة إلى:

int incrementAge() {
  static int age = 0;
  age++;
  return age;
}

الآن في كل مرة نسمي هذه الوظيفة ، نحصل على قيمة متزايدة:

printf("%d\n", incrementAge());
printf("%d\n", incrementAge());
printf("%d\n", incrementAge());

سوف يعطينا

1
2
3

We can also omit initializing age to 0 in static int age = 0;, and just write static int age; because static variables are automatically set to 0 when created.

We can also have static arrays. In this case, each single item in the array is initialized to 0:

int incrementAge() {
  static int ages[3];
  ages[0]++;
  return ages[0];
}

Download my free C Handbook


More clang tutorials: