شرح المؤشرات في لغة سي بلس بلس بشكل بسيط (++pointers in c)
العديد من الرواد الجدد للغة سي بلس بلس ++c يجدون صعوبة في فهم او تعلم مصطلح pointers او المؤشرات, ليس لانها صعبة بل لان طريقة اشتغالها مختلفة عن بقية اللغات مثل بايثون او جافا, لهذا قررت ان اكتب هذا الدرس البسيط الذي ربما سيساعد العديد منكم لتقبل المفهوم.
ماهو المؤشر pointer ؟
المؤشر في سي بلس بلس هو ببساطة نوع بيانات يمكنه ان يخزن عنوانا الي شيء ما داخل ذاكرة الحاسوب , يمكن ان يكون هذا الشيء متغيرا variable او وظيفة function, و يكون هذا العنوان عادة في شكل سداسي عشري hexadecimal, فعندما نطبع قيمة المؤشر على الشاشة يجب ان نرى عددا مثل 0x007FCFE اين 0x تميز الاعداد السداسية العشرية في لغة سي بلس بلس في هي مجودة امام كل عدد سداسي عشري.
كيف نعلن عن متغير ؟
يمكننا كتابة متغير من خلال اضافة رمز النجمة * بين النوع و الاسم مثال int *myPtr فمن هذا المثال نستنتج اننا قمنا بالاعلان عن متغير من نوع مؤشرالى int و هذا المتغيرلم تتم تهيئته بقيمة بعد فهو الان كما هو متعارف معروف باسم مؤشر
فارغ او null pointer الذي لا يحمل اي قيمة بعد.
كيف نستعمل المؤشرات في سي بلس بلس؟
يمكننا ان نعطي قيمة للمؤشر الفارط بضم علامة & امام متغير اخر من نفس النوع اي int كما هو واضح في الصورة اسفله
هنا نرى ان myPtr يحمل عنوان myInt في الذاكرة و هكذا نستطيع ان نتحصل على قيمة myInt بوضع نجمة امام اسم المؤشر عند استخدامه. فهنا مثلا البرنامج اخرج قيمة myInt عن طريق المؤشر myPtr وهي 5.
هناك عدة استعمالات اخرة للمؤشرات التي لن نذكرها في درس اليوم لكن سنتطرق اليها في دروس لاحقة باذن الله ,
شكرا لمتابعتك.

تعليق واحد
الشرح جيد جدا