كل ما يتعلق بالمؤشرات Pointers في ++C





 أقدم لكم اليوم أحد أصعب المواضيع تعقيدا في البرمجة
 و هو موضوع المؤشرات ( Pointer بالإنجليزية و Pointeur بالفرنسية )

سنتكلم على المؤشرات بشكل عام في لغة ++C ، لأنها تمثل إحدى أعمدة هذه اللغة و واحدة من أكبر نقاط قوتها .
هام : هذا الموضوع مخصص للمبرمجين الذين يعرفون على الأقل أساسيات البرمجة ( معنى المتغيرات ، إظهار محتوى على الشاشة ... )


تعريف المؤشر Pointer :

هو قبل كل شيء متغير ككل المتغيرات التي يمكنك إنشاؤها على الـ ++C
أي أنه يستطيع إستقبال معلومة مع إمكانية تغييرها بمعلومة أخرى من نفس نوعها فيما بعد .

 إذن ما الفرق بينه و بين باقي المتغيرات ؟
هنا تكمن أهميته و قوته ، فالفرق بينه و بين باقي المتغيرات هو في نوع المعلومة التي يستقبلها
فهو يستقبل ما يسمى بالعنوان - Adresse - Address
( عادة ما يتم نمذجة الذاكرة RAM بمجموعة منتهية من الخانات ، لكل خانة قيمة أومحتوى ، و عنوان )

أين تكمن الأهمية في هذا ؟
لن تكتشفوا الأهمية الكبرى للمؤشرات إلا بعد تعمقكم نوعا ما في البرمجة ،
على الأقل الوصول إلى الدوال ( Functions ) و إلى المتغيرات المركبة ( Complex Structues & variables )
كالقوائم ( chained lists ) مثلا أو الجدوال الديناميكية ( Dynamic Arrays ) و غيرهما .
فإمكانية حفظ عنوان متغير معين يتيح لنا استرجاع محتواه و عرضه و كذا تغييره و استبداله دون الرجوع للمتغير نفسه .
عن طريق المؤشرات ، يمكنك التحكم كليا في كل خانة من خانات الذاكرة RAM !

فهم عمل المؤشرات ؟

إليكم هذا المخطط :




















  

تفصيل محتوى المخطط :

كما تلاحظون ، 
تم إنشاء متغير من نوع Integer بإسم Var1 يحمل القيمة 19
ثم تم إنشاء مؤشر أيضا بنوع Integer بإسم P1 و يؤشر على Var1

هل يجب أي يكون المؤشر من نفس نوع المتغير الذي يؤشر عليه ؟
نعم ، و هذا ضروري و إجباري و مهم جدا .
لا يمكن للمؤئر أن يؤشر على متغير معين إلا إذا كان من نفس نوعه ( int , char , double أو غيرها )

لاحظوا النتائج عندما أردنا إظهار محتويات المتغيرات عن طريق cout :

بشكل عام ، إذا أردنا عرض "عنوان خانة معينة" بإستعمال المؤشر ، نستعمل :
pointer_name ( أي إسم المؤشر و فقط )
و إذا أردنا عرض "محتوى خانة معينة" باستعمال المؤشر ، نستعمل :
pointer_name* ( أي إسم المؤشر مسبوق بعلامة "* - نجمة ")

بينما ، إذا أردنا عرض "عنوان خانة معينة" بإستعمال المتغير نفسه ، نستعمل :
variable_name& ( أي إسم المتغير مسبوق بعلامة & )
و إذا أردنا عرض "محتوى خانة معينة" باستعمال المتغير نفسه، نستعمل :
variable_name ( أي إسم المتغير و فقط )



هذه أهم القواعد التي يجب معرفتها في موضوع "المؤشرات"
سنعود و نفصل في هذا الموضوع أكثر في شروحات قادمة بإذن الله
أتمنى أن تعم الفائدة على الجميع .



استفد ، اترك انطباعك في الموضوع ، و شارك الآخرين الفائدة بـ [ Share ]

هل أعجبك الموضوع ؟

Aucun commentaire:

Enregistrer un commentaire

رسائل أحدث رسائل أقدم الصفحة الرئيسية

جميع الحقوق محفوظة ل مدونة أبرمج ©2014 نقل بدون تصريح ممنوع.