اقرأ في هذا المقال
- مفهوم المؤشرات في لغة البرمجة ++C
- تعريف المؤشرات في لغة البرمجة ++C
- كيفية التعامل مع المؤشرات في لغة البرمجة سي بلس بلس
- أهمية استخدام المؤشرات في لغة البرمجة ++C
مفهوم المؤشرات في لغة البرمجة ++C
المؤشرات (Pointers) في لغات البرمجة هي عبارة عن متغيرات تحتوي قيمتها على عنوان متغير آخر موجود داخل الذاكرة، وتستخدم المؤشرات بشكل كبير في لغة البرمجة سي بلس بلس حيث أنها تسهل عملية الوصول إلى أي عنصر أو كائن تم تعريفه في الذاكرة، و هي تساعد المبرمج بالتحكم بمختلف الكائنات.
والفرق الأساسي بين المؤشرات والمراجع في لغة البرمجة سي بلس بلس هو أن المؤشر يقوم بحجز مساحة في الذاكرة لتخزين عنوان الكائن الذي يؤشر إليه، والمؤشر أيضاً بإمكانه الإشارة لأي عنصر موجود في الذاكرة في أي وقت ولا يكون المبرمج مجبراً على تحديد العنصر الذي يشير إليه لحظة إنشاء المؤشر.
وحجم المؤشر في لغة البرمجة سي بلس بلس يكون بحجم نوع البيانات التي يقوم بالإشارة إليها، وعادة ما يتم حجز مساحة (4Byte) في نظام ال ( 32bit )ويتم حجز مساحة (8Byte) في نظام ال (64bit).
تعريف المؤشرات في لغة البرمجة ++C
لتعريف (Pointer) جديد في لغة البرمجة سي بلس بلس فإن المبرمج بستخدم الرمز (*)، مع الإشارة إلى أن نوع المؤشر يجب أن يكون نفس نوع الكائن الذي سيشير له في الذاكرة، فعلى سبيل المثال إذا اردنا تعريف مؤشر نوعه int و اسمه (y) فهناك ثلاث طرق لتعريفه:
Data-Type *variable_name; الشكل العام لتعريف المؤشرات في لغة سي بلس بلس
الطريقة الأولى:
int* y;
int *y;
int * y;
كيفية التعامل مع المؤشرات في لغة البرمجة سي بلس بلس
للتعامل مع المؤشرات في لغة البرمجة (++C) هناك مجموعة من الأمور التي يجب مراعاتها من قبل المبرمج وهي:
- يتم كتابة اسم المؤشر فقط في حال أراد المبرمج الوصول لقيمته، مثال: (ptr) وضعنا اسم المؤسر لكي نحصل على قيمته.
- يتم وضع إشارة (&) قبل اسم المؤشر في حال أراد المبرمج الوصول للعنوان الخاص بالمؤشر في الذاكرة، مثال: (ptr&).
- يتم وضع إشارة (*) قبل اسم المؤشر في حال أراد المبرمج الوصول لقيمة العنصر الذي يشير إليه المؤشر، مثال: (ptr*).
أهمية استخدام المؤشرات في لغة البرمجة ++C:
وتستخدم المؤشرات بشكل كبير في لغة البرمجة سي بلس بلس للتعامل مع المصفوفات (Arrays)، حيث تعتبر المصفوفة نوع من أنواع المؤشرات حيث يتم استخدام العمليات الحسابية على المؤشرات للتنقل بين عناصر المصفوفة، وتستخدم أيضاً لإنشاء المتغيرات الديناميكية والتي يحتاجها المبرمج في أثناء تشغيل البرنامج.