ما هو مشغل Dereference؟

في برمجة الكمبيوتر ، يعمل مشغل dereference ، المعروف أيضًا باسم عامل التشغيل غير المباشر ، على متغير المؤشر ويعيد قيمة الموقع ، أو القيمة l ، التي يشير إليها في الذاكرة. في لغة البرمجة C ، يُشار إلى عامل التفضيل بعلامة نجمية ( * ).

على سبيل المثال ، في C ، يمكننا إعلان متغير x يحمل قيمة عددية ، ومتغير p يحتفظ بمؤشر إلى قيمة عدد صحيح في الذاكرة:

 int x ؛ int * p؛ 

هنا ، تخبر العلامة النجمية المترجم ، " p ليس عددًا صحيحًا ، بل هو مؤشر إلى موقع في الذاكرة يحمل عددًا صحيحًا". هنا ، ليس dereference ، ولكن جزء من إعلان المؤشر.

الآن يمكننا ضبط p على الموقع المخصص لقيمة x باستخدام & عامل التشغيل ، مما يعني "عنوان."

 p = & x؛ 

يخبر هذا الإجراء المحول البرمجي ، "العنوان في الذاكرة الذي يشير إليه p هو العنوان الذي قمت بتخصيصه للأعداد الصحيحة x ."

للتوضيح ، إذا قمنا بتعيين قيمة x إلى 1 باستخدام الطريقة التقليدية ، وقمنا بطباعة القيمة ، فسيكون الناتج 1 .

 س = 1 ؛ printf ("٪ d"، x)؛ 

ومع ذلك ، يمكننا أيضًا تغيير قيمة x بالرجوع إلى ص . ونحن نفعل هذا مع النجمة:

 * ع = 2 ؛ printf ("٪ d"، x)؛ 

ويتغير الإخراج إلى 2 .

بمعنى آخر ، بعد التصريح بـ p كمؤشر من نفس النوع مثل x ثم تعيينه للإشارة إلى قيمة x ، يمكننا استخدام x و * p بالتبادل. نظرًا لأن كلاهما يشير إلى نفس الشيء ، فإن تغيير قيمة أحدهما سيغير قيمة الآخر.

مؤشر ، مصطلحات البرمجة ، متغير