عندما تقوم بعمل declaration لمتغير من نوع string، فإن هذا الـ string هو في النهاية array of characters بالنسبة للكمبيوتر.
لذلك يحتاج الكمبيوتر إلى معرفة أين يبدأ وأين ينتهي هذا الـ array، ليتمكن من تخزينه بالطريقة الصحيحة وبشكل متتالي في الذاكرة.
في لغة البرمجة C، التي تعتبر lower-level language، أي أنها لغة أقرب إلى machine code مقارنةً بـ user code، يتم استخدام قيمة خاصة تُسمى NUL character في نهاية كل array. هذه القيمة الفارغة تُعطي الكمبيوتر إشارة على أن عدد ال characters في هذا الـ array قد انتهى.
على سبيل المثال:
string name = "mohcin";
يتم تخزين هذا المتغير بهذا الشكل في الذاكرة:
['m', 'o', 'h', 'c', 'i', 'n', '\0']
===»» لماذا؟ لأن بدون الـ NUL character، سيستمر الكمبيوتر في القراءة من الذاكرة دون توقف مما يؤدي إلى سلوك غير محدد وغير معروف، وربما يؤدي إلى crash للبرنامج المكتوب.
- هذا ضروري في اللغات ذات المستوى المنخفض (lower-level languages) لتجنب القراءة المستمرة للذاكرة والنتائج غير المتوقعة.
- أما في لغات البرمجة ذات المستوى الأعلى (higher-level languages)، فلا تحتاج إلى NUL character، لأن هذه اللغات تقوم بحساب طول الـ string او ال array تلقائيًا نيابة عنك.
#fundamental #software #computer #basics
لذلك يحتاج الكمبيوتر إلى معرفة أين يبدأ وأين ينتهي هذا الـ array، ليتمكن من تخزينه بالطريقة الصحيحة وبشكل متتالي في الذاكرة.
في لغة البرمجة C، التي تعتبر lower-level language، أي أنها لغة أقرب إلى machine code مقارنةً بـ user code، يتم استخدام قيمة خاصة تُسمى NUL character في نهاية كل array. هذه القيمة الفارغة تُعطي الكمبيوتر إشارة على أن عدد ال characters في هذا الـ array قد انتهى.
على سبيل المثال:
string name = "mohcin";
يتم تخزين هذا المتغير بهذا الشكل في الذاكرة:
['m', 'o', 'h', 'c', 'i', 'n', '\0']
===»» لماذا؟ لأن بدون الـ NUL character، سيستمر الكمبيوتر في القراءة من الذاكرة دون توقف مما يؤدي إلى سلوك غير محدد وغير معروف، وربما يؤدي إلى crash للبرنامج المكتوب.
- هذا ضروري في اللغات ذات المستوى المنخفض (lower-level languages) لتجنب القراءة المستمرة للذاكرة والنتائج غير المتوقعة.
- أما في لغات البرمجة ذات المستوى الأعلى (higher-level languages)، فلا تحتاج إلى NUL character، لأن هذه اللغات تقوم بحساب طول الـ string او ال array تلقائيًا نيابة عنك.
#fundamental #software #computer #basics
❤2🤝1