الدرس 18: المؤشرات — العناوين، & و *
يعيش كل متغير في برنامجك في عنوان حقيقي في الذاكرة — تماماً مثل شقة في شارع. يعطي المعامل & عنوان x (لُغز scanf("%d", &x) من الدرس 3 قد حُلَّ أخيراً!). المؤشر هو متغير يخزّن عنواناً: int *p = &x;. باستخدام *p تصل إلى القيمة الموجودة في ذلك العنوان — يمكنك قراءتها وأيضاً تغييرها، فـ *p = 99; يغيّر x
المؤشر هو ورقة مكتوب عليها عنوان شقة. يكتب &x العنوان على الورقة، و *p يقول 'اذهب إلى العنوان المكتوب على الورقة وانظر إلى (أو غيّر) ما بداخله'. التغيير عبر الورقة يغيّر الشقة الحقيقية.
- عنوان الذاكرة
- الموقع الرقمي الذي يعيش فيه المتغير في الذاكرة. كل متغير يحصل على عنوان.
- & (معامل العنوان)
- &x يُرجِع عنوان x — لا قيمته.
- مؤشر
- متغير يخزّن عنوان متغير آخر. يُصرَّح عنه: int *p = &x;.
- * (إلغاء الإشارة)
- *p يصل إلى القيمة الموجودة في العنوان الذي يحمله p. قراءة وكتابة: *p = 99; يغيّر x.
- NULL
- قيمة خاصة تعني 'هذا المؤشر لا يشير إلى أي شيء'. تحقّق دائماً قبل الاستخدام.