

أقدم لكم اليوم أحد أصعب المواضيع تعقيدا في البرمجة
و هو موضوع المؤشرات ( Pointer بالإنجليزية و Pointeur بالفرنسية )
سنتكلم على المؤشرات بشكل عام في لغة ++C ، لأنها تمثل إحدى أعمدة هذه اللغة و واحدة من أكبر نقاط قوتها .
هام : هذا الموضوع مخصص للمبرمجين الذين يعرفون على الأقل أساسيات البرمجة ( معنى المتغيرات ، إظهار محتوى على الشاشة ... )
تعريف المؤشر Pointer :
هو قبل كل شيء متغير ككل المتغيرات التي يمكنك إنشاؤها على الـ ++C
أي أنه يستطيع إستقبال معلومة مع إمكانية تغييرها بمعلومة أخرى من نفس نوعها فيما بعد .
إذن ما الفرق بينه و بين باقي المتغيرات ؟
هنا تكمن أهميته و قوته ، فالفرق بينه و بين باقي المتغيرات هو في نوع المعلومة التي يستقبلها
فهو يستقبل ما يسمى بالعنوان - Adresse - Address
( عادة ما يتم نمذجة الذاكرة RAM بمجموعة منتهية من الخانات ، لكل خانة قيمة أومحتوى ، و عنوان )
أين تكمن الأهمية في هذا ؟
لن تكتشفوا الأهمية الكبرى للمؤشرات إلا بعد تعمقكم نوعا ما في البرمجة ،
على الأقل الوصول إلى الدوال ( Functions ) و إلى المتغيرات المركبة ( Complex Structues & variables )
كالقوائم ( chained lists ) مثلا أو الجدوال الديناميكية ( Dynamic Arrays ) و غيرهما .
فإمكانية حفظ عنوان متغير معين يتيح لنا استرجاع محتواه و عرضه و كذا تغييره و استبداله دون الرجوع للمتغير نفسه .
عن طريق المؤشرات ، يمكنك التحكم كليا في كل خانة من خانات الذاكرة RAM !
فهم عمل المؤشرات ؟
إليكم هذا المخطط :
تفصيل محتوى المخطط :
كما تلاحظون ،
تم إنشاء متغير من نوع Integer بإسم Var1 يحمل القيمة 19
تم إنشاء متغير من نوع Integer بإسم Var1 يحمل القيمة 19
ثم تم إنشاء مؤشر أيضا بنوع Integer بإسم P1 و يؤشر على Var1
هل يجب أي يكون المؤشر من نفس نوع المتغير الذي يؤشر عليه ؟
نعم ، و هذا ضروري و إجباري و مهم جدا .
لا يمكن للمؤئر أن يؤشر على متغير معين إلا إذا كان من نفس نوعه ( int , char , double أو غيرها )
لاحظوا النتائج عندما أردنا إظهار محتويات المتغيرات عن طريق cout :
بشكل عام ، إذا أردنا عرض "عنوان خانة معينة" بإستعمال المؤشر ، نستعمل :
pointer_name ( أي إسم المؤشر و فقط )
و إذا أردنا عرض "محتوى خانة معينة" باستعمال المؤشر ، نستعمل :
pointer_name* ( أي إسم المؤشر مسبوق بعلامة "* - نجمة ")
بينما ، إذا أردنا عرض "عنوان خانة معينة" بإستعمال المتغير نفسه ، نستعمل :
variable_name& ( أي إسم المتغير مسبوق بعلامة & )
و إذا أردنا عرض "محتوى خانة معينة" باستعمال المتغير نفسه، نستعمل :
variable_name ( أي إسم المتغير و فقط )
هذه أهم القواعد التي يجب معرفتها في موضوع "المؤشرات"
سنعود و نفصل في هذا الموضوع أكثر في شروحات قادمة بإذن الله
أتمنى أن تعم الفائدة على الجميع .
استفد ، اترك انطباعك في الموضوع ، و شارك الآخرين الفائدة بـ [ Share ]
Aucun commentaire:
Enregistrer un commentaire