العودة إلى الدورة

المؤشرات الجزء 1: ما هي المؤشرات؟

لغة C: من الصفر إلى الاحتراف - الدليل الشامل للمبتدئين

الدرس 34: المؤشرات الجزء 1: ما هي المؤشرات؟

تعتبر المؤشرات (Pointers) أقوى ميزة فريدة في لغة C. المؤشر هو متغير يخزن عنوان الذاكرة لمتغير آخر.

الذاكرة والعناوين

كل بايت في ذاكرة الكمبيوتر له عنوان فريد (رقم) مخصص له. عندما نصرح عن متغير، يتم تخصيص ذاكرة له، ويعرف المترجم عنوانه.

المتغيرالقيمةعنوان الذاكرة (مثال)
int x420x7ffee1234568

التصريح عن المؤشر

للتصريح عن متغير مؤشر، استخدم معامل فك المرجع (*).

القاعدة: data_type *pointer_variable_name;

يحدد الـ data_type نوع البيانات التي يشير إليها المؤشر، وليس نوع المؤشر نفسه (الذي يحمل دائماً عنواناً).

c int *ptr_to_int; // مؤشر لعدد صحيح char *ptr_to_char; // مؤشر لحرف (أو سلسلة نصية) double *ptr_to_double; // مؤشر لعدد عشري

معاملات المؤشرات

1. معامل العنوان (&)

يعيد عنوان الذاكرة لمتغير ما.

2. معامل فك المرجع/غير المباشر (*)

يصل إلى القيمة المخزنة في عنوان الذاكرة الذي يحمله المؤشر.

c int x = 100; int *p;

// 1. تعيين عنوان x للمؤشر p p = &x;

// 2. الوصول للقيمة في العنوان المخزن في p printf("قيمة x: %d\n", *p); // المخرجات: 100

// تغيير قيمة x باستخدام المؤشر *p = 200; printf("القيمة الجديدة لـ x: %d\n", x); // المخرجات: 200