الفرق بين المؤشر والمرجع | بوينتر فس ريفيرانس

Anonim

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

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

ما هو المؤشر؟

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

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

إنت i = 5؛

إنت * بتر = & i؛

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

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

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

* بتر = 20؛

يمكن إعادة توجيه المؤشرات للإشارة إلى أشياء مختلفة أيضا.

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

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

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

يتم دعم المؤشرات في لغات مثل C، C ++، باسكال والعديد من لغات التجميع.

مؤشر a مشيرا إلى عنوان الذاكرة المرتبطة متغير b.

ما هو المرجع؟

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

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

إنت i = 5؛

إنت & ريف = i؛

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

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

ريف = 20؛

وفقا للمثال الوارد أعلاه، لا تتطلب مراجع إزالة المراجع أي مشغلين.

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

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

لغات البرمجة مثل C ++، جافا، بيثون، بيرل، فب، روبي، الخ مراجع الدعم.

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

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

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

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

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

إعلان

المؤشر: يتم الإعلان عن المؤشر مع المشغل *.

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

ديريفيرانسينغ

مؤشر: يتطلب متغير المؤشر * عامل ديفيرفيرنسد.

المرجع: لا يتطلب المتغير المرجعي أي مشغل ليتم حذفه.

تهيئة

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

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

إعادة التعيين

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

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

أوسيج

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

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

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

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

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

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

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

المرجع: لغات البرمجة مثل C ++، جافا، بيثون، بيرل، فب، روبي، الخ الدعم المراجع.

إيماج كورتيسي: "بوينترس" بي ذيس فيل ميد بي وسر: سفينترانزلاتيون. عمل خاص. تم إنشاء هذه الصورة المتجهة مع إنكسكيب. (سيسي بي-سا 3. 0) عبر كومونس -