تخطَّ إلى المحتوى

🇨 شرح لغة C

المؤشّرات المتقدّمة

الدرس 14 من 25· ⏱ 1 دقائق قراءة

مراجعة سريعة

int x = 10;
int *p = &x;      // p يخزّن عنوان x
printf("%d\n", *p);  // 10  (* تقرأ القيمة)
*p = 20;          // تعديل x عبر المؤشّر

المؤشّرات والمصفوفات

اسم المصفوفة هو في الحقيقة مؤشّر لأوّل عنصر:

int arr[3] = {10, 20, 30};
int *p = arr;
printf("%d\n", *(p + 1));  // 20  (حساب المؤشّر)

p + 1 ينتقل عنصرًا واحدًا (وليس بايتًا واحدًا) حسب نوع المؤشّر.

مؤشّر إلى مؤشّر

int x = 5;
int *p = &x;
int **pp = &p;
printf("%d\n", **pp);   // 5

NULL والأمان

int *p = NULL;          // مؤشّر فارغ
if (p != NULL) *p = 1;  // افحص قبل الاستخدام

أخطاء شائعة

  • استخدام مؤشّر غير مهيّأ أو مؤشّر فارغ → تعطّل (segmentation fault).

🎯 التالي: إدارة الذاكرة الديناميكية.

هل كان هذا الدرس مفيدًا؟