ملخص المؤشرات في ++C

c

قدمنا جولة في ساحة المؤشرات , وما يزال هناك الكثير مما يقال عنها , ولكن ما قدمناه من موضوعات يغطي الأساس لمل سنعرض له قيما بعد من أمثلة وأفكار .

علمنا أن العنوان في الذاكرة هو ثابت مؤشر وأنه يمكن إيجاد عنوان متغير ما باستخدام المؤثر & . فالمؤشرات هي متغيرات تحتوي (تشير إلي ) عناوين . وتميز المؤشرات بنجمة "*" تعني "يشير إلي " , و يجب أن يتضمن تعريف المؤشر نوع المتغير صاحب العنوان , لأن المترجم يحتاج هذا البيان لإجراء بعض الحسابات أثناء التعامل مع المؤشرات ويمكننا الوصول إلي الشئ المشار إليه بإستخدام النجمة بمعني أخر , وهو "قيمة المتغير المشار إليه" , أو بعبارة أخري , كمؤثر لا مباشرة .

ويمكن التعامل مع المصفوفات بطريقتين , المعتادة عن طريق الأقواس المربعة , أو المؤشرات عن طريق النجمة . ومثل كافة العناوين يعتبر عنوان المصفوفة ثابتا . ولكن قيمته يمكن أن تخصص لمتغير يجري عليه عملية التزايد .

وحين يمرر لدالة عنوان متغير يمكن للدالة التعامل معه مباشرة وليس عن طريق نسخة له , علي عكس حالة إمرار قيمته وفي هذا الخصوص يعطينا إمرار المؤشرات نفس ميزة الإمرار المرجعي , إلا أن الإمرار بأسلوب المؤشرات يعطي قدرا أكبر من المرونة .

ويمكن النظر لثابت عبارة نصية كمصفوفة أو كمؤشر , والأسلوب الأخير أكثر مرونة , مع مراعاة خطورة إمكانية تسويه قيم المؤشرات . والعبارات النصية , باعتبارها مصفوفات , يمكن ترحيلها للدوال والتعامل معها بأسلوب المؤشرات .

ويستخدم المؤثر new للحصول علي مساحة معينة من الذاكرة , ويعيد مؤشرا لها (عنوانها ) , ويستخدم لإنشاء متغيرات وهياكل بيانات أثناء تنفذ البرنامج , ويستخدم المؤثر delete لتحرير المساحة المخصصة .

وحين يشير مؤشر لكائن يستخدم المؤثر السهمي للتعامل مع عناصر ذلك الكائن , وهو أيضا أسلوب التعامل مع عناصر الهياكل .

ويمكن للفئات وللهياكل أن تحتوي علي عناصر من نوع المؤشرات , تشير لبيانات من نفس نوعها وهو ما ييسر إنشاء هياكل معقدة من البيانات مثل القوائم المترابطة .

ويمكن أن توجد مؤشرات لمؤشرات ,’ وهنا تستخدم نجمتين علي الصورة int **pptr مثلا .

تعليقات

  1. السلام عليكم:اخي ممكن اعطائي بعض المعلومات عن العلاقة بين المؤشرات والدوال

    ردحذف

إرسال تعليق

المشاركات الشائعة من هذه المدونة

الرسم Graphics

التعامل مع الفأرة Working With Mouse

إنشاء صناديق الحوار Design Dialog Boxes