الفرق الرئيسي - المؤشر مقابل المرجع

قبل مناقشة الفرق بين المؤشر والمرجع ، دعونا أولاً نلقي نظرة على معنى هذين المصطلحين لفترة وجيزة. في البرنامج ، تشغل البيانات الذاكرة. يجب معرفة الموقع الدقيق للذاكرة التي وضعت فيها البيانات في وقت التنفيذ للوصول إليها. يتم استخدام متغيرات المؤشر والمتغيرات المرجعية للوصول إلى هذه البيانات ومعالجة عناوين الذاكرة الموجودة بها. أي ، يمكن استخدام كل من المؤشرات والمراجع للإشارة إلى الكائنات بشكل غير مباشر. لديهم أساسًا عناوين الذاكرة كقيم لها. يتمثل الاختلاف الرئيسي بين المؤشر والمرجع في أن المؤشر هو متغير يقوم بتخزين عنوان موقع ذاكرة متغير آخر في حين أن المرجع هو متغير يشير إلى متغير آخر. لدى الآليتين ، المؤشر والمرجع ، بناء جملة واستخدام مختلفين.

ما هو المؤشر؟

المؤشر عبارة عن كائن لغة برمجة يخزن عنوان ذاكرة القيمة في ذاكرة الحوسبة.

في بناء جملة C ++؛

أنت أنا = 5؛

int * ptr = & i؛

يحدد السطر الأول متغيرًا تم تهيئته بقيمة 5. يعرف السطر الثاني مؤشرًا إلى عنوان ذاكرة المتغير. هنا ، يتم الإعلان عن "ptr" ككائن من النوع "مؤشر إلى int" والذي تكون قيمته الأولية هي عنوان الكائن i. يشير المتغير ptr بشكل أساسي إلى i عن طريق تخزين عنوان ذاكرته.

يُطلق على الحصول على القيمة المخزنة في موقع الذاكرة إلغاء التسجيل. يتم استخدام عامل التشغيل * لتحديد مرجع المؤشر. بعد الانتهاء من التصريحات ، فإن التعبير غير المباشر * ptr dereferences ptr للإشارة إلى i.

لتغيير قيمة i ، يمكن استخدام التخصيص التالي ؛

* ptr = 20 ؛

قد يتم إعادة تعيين المؤشرات للإشارة إلى كائنات مختلفة أيضًا.

مؤشر فارغة هو نوع خاص من المؤشر. غالبًا ما يتم الإشارة إلى مؤشر لاغ ب 0 أو لاغ و يشير إلى لا شيء. من الممارسات الجيدة استخدام مؤشر فارغ في حالة عدم وجود عنوان محدد ليتم تعيينه للمؤشر. يمكن استخدام هذا الواجب في العمليات والظروف المنطقية.

يمكن استخدام المؤشرات لتخزين وإدارة عناوين الذاكرة المخصصة بشكل حيوي. يمكن جعل تطبيق هياكل البيانات والتحكم فيها مثل المكدسات وقوائم الانتظار والقوائم أكثر فاعلية باستخدام المؤشرات. على سبيل المثال ، قد تحتوي قائمة الانتظار على مؤشرين ؛ مؤشر الرأس ومؤشر الذيل. يمكن أيضًا استخدام المؤشرات لتمرير المتغيرات حسب عنوانها ، مما يسمح بتغيير القيمة. يمكن أيضًا التعامل مع الذاكرة أو الأجهزة المعينة للذاكرة مباشرةً باستخدام المؤشرات.

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

يتم دعم المؤشرات بلغات مثل C و C ++ و Pascal والعديد من لغات التجميع.

ما هو المرجع؟

المرجع هو مجرد معرف بديل لقيمة مخزنة في الذاكرة. أنها تمكن البرنامج من الوصول بشكل غير مباشر إلى مسند معين.

في بناء جملة C ++؛

أنت أنا = 5؛

int & ref = i؛

يعرّف السطر الأول المتغير الذي تم تهيئته بقيمة 5. السطر الثاني يعلن "ref" ككائن من النوع "reference to int" والذي يشير إلى i. يختلف المرجع عن البيانات نفسها بالنظر إلى أن المرجع يتم تنفيذه كعنوان فعلي للملف المعين الذي تم تخزينه في الذاكرة.

بمجرد التعريف ، لا يمكن إعادة تعيين مرجع لقيمة جديدة. يشير المرجع دائمًا إلى الكائن الذي تمت تهيئة به به. في الواجب التالي ، يشير المرجع إلى i ، لكن القيمة الآن 20.

المرجع = 20 ؛

وفقًا للمثال أعلاه ، لا تتطلب مراجع إلغاء التسجيل أي عوامل تشغيل.

يمكن استخدام المراجع عندما يشير المتغير دائمًا إلى كائن. هذا لأنه ، على عكس المؤشرات ، لا يمكن أن تكون المراجع فارغة ويجب دائمًا تعيينها عند التهيئة. نظرًا لأن المراجع يجب أن تشير دائمًا إلى كائن ما ، فإن جعل مثل هذا المتغير مرجعًا يضمن أن يعمل البرنامج بكفاءة وصحيح. نظرًا لأنه لا توجد مراجع فارغة ، فلا يجب اختبار صلاحية متغير المرجع.

يمكن استخدام المتغيرات المرجعية لتمرير البيانات الكبيرة بكفاءة كوسائط إلى الإجراءات. يتم استخدام المراجع أيضًا في مشاركة البيانات الكبيرة بين مناطق التعليمات البرمجية المختلفة نظرًا لأن كل رمز يحتفظ بمرجع إلى البيانات.

تدعم لغات البرمجة مثل C ++ و Java و Python و Perl و PHP و Ruby وغيرها.

ما هو الفرق بين المؤشر والمرجع؟

تعريف المؤشر والمرجع

المؤشر: المؤشر هو عنوان ذاكرة الكائن المخزن في ذاكرة الحوسبة.

المرجع: المرجع هو معرف بديل أو اسم مستعار لكائن.

خصائص المؤشر والمرجع

إعلان

المؤشر: يتم الإعلان عن المؤشر باستخدام العامل *.

المرجع: يتم الإعلان عن مرجع مع المشغل &.

Dereferencing

المؤشر: يتطلب متغير المؤشر أن يتم إلغاء تحديد عامل التشغيل *.

المرجع: المتغير المرجعي لا يتطلب إلغاء تأجيل المشغل.

جار تهيئة

المؤشر: يمكن تهيئة المؤشرات لتكون خالية. تسمى هذه المتغيرات مؤشرات فارغة.

المرجع: المراجع لا يمكن تهيئتها لتكون خالية. لا يوجد شيء مثل مرجع فارغ. يجب أن يشير المرجع دائمًا إلى كائن.

الانتداب

المؤشر: قد يتم إعادة تعيين متغير المؤشر للإشارة إلى كائنات مختلفة.

المرجع: لا يمكن إعادة تعيين متغير مرجع. يشير دائمًا إلى الكائن الذي تمت تهيئته به.

استعمال

المؤشر: يجب استخدام متغيرات المؤشر عند وجود إمكانية للإشارة إلى أي شيء أو عند الحاجة إلى الإشارة إلى أشياء مختلفة في أوقات مختلفة.

المرجع: يجب استخدام المتغيرات المرجعية عندما يكون هناك دائمًا كائن للإشارة إليه وعندما لا يكون مطلوبًا استخدام هذا المتغير المرجعي للإشارة إلى أي شيء آخر غير هذا الكائن.

تطبيق الاستخدام

المؤشر: يمكن استخدام متغيرات المؤشر لتنفيذ الخوارزميات وهياكل البيانات.

المرجع: يمكن استخدام المتغيرات المرجعية في معلمات الوظيفة ، وتعرف أنواع الإرجاع واجهات مفيدة.

اللغات المستخدمة:

المؤشر: لغات البرمجة مثل C و C ++ و Pascal والعديد من لغات التجميع تدعم مؤشرات.

المرجع: لغات البرمجة مثل C ++ ، Java ، Python ، Perl ، PHP ، Ruby ، ​​إلخ.