عندما نمرر مؤشرًا كمعلمة إلى طريقة ، فإننا نمرر بالفعل نسخة من المؤشر إلى الطريقة ، أو يمكننا أن نقول أن تمرير المؤشر هو قيمة المؤشر.
شرح مفصل للفرق بين المرجع والمؤشر في C ++
يتم تقديم المراجع من C ++ ولا توجد في C. من أجل فهم مفهوم الاقتباس ، يجب أولاً فهم تعريف المتغيرات والفرق بين المراجع والمتغيرات.
المرجع ليس متغيرًا ، إنه مجرد اسم مستعار للمتغير ، وليس له مساحة مستقلة. بمعنى آخر ، يحتاج المرجع إلى مشاركة نفس مساحة الذاكرة مثل المتغير الذي يشير إليه ، والتغيير في المرجع هو في الواقع تعديل للمتغير المشار إليه. ويجب تهيئة المراجع عند تحديدها.
نوع المعلمة المارة والنقاط ذات الصلة:
1 تمرير بالقيمة: لا يمكن تعديل قيمة المعلمة الرسمية.
2 مرجع تمريرة: ليست هناك حاجة لتخصيص مساحة عند تهيئة المعلمة الفعلية.
3 تمرير مؤشر: في جوهره ، لا يزال يتم تمريره بالقيمة. إذا كنت بحاجة إلى تعديل عنوان المؤشر ، فما عليك سوى تمريره باستخدام مؤشر.
فيما يلي المحتويات ذات الصلة المقتبسة:
1 اقتباس مفهوم
2 اقتباسات const
3 مرجع تمرير كمعلمة
4 المرجع كقيمة إرجاع الوظيفة
5. الفرق بين المرجع والمؤشر
1 اقتباس مفهوم
فقط ضع النقاط الرئيسية التالية في الاعتبار:
(1) المرجع هو الاسم المستعار للمتغيرات ، وليس هناك مساحة مستقلة
(2) يجب مشاركة المرجع مع المتغيرات التي تشير إليها
(3) التغييرات في المرجع هي في الواقع تغييرات على المتغيرات التي تشير إليها
(4) يجب تهيئة المراجع عند التعريف
(5) بمجرد تهيئة المرجع ، لا يمكن تلاوة المتغيرات الأخرى.
انظر المثال التالي:
int main (void) {int val = 100 ؛ int Val2 = 500 ؛ // تعني فقط تعيين Val2 إلى refval ، أي Val.2 اقتباسات const
النقاط الرئيسية لاقتباس const هي كما يلي:
(1) كما يوحي الاسم ، مرجع const هو إشارة إلى كائن const.
(2) يمكن أن يشير مرجع const إلى كائن غير محدد ، ولكن لا يمكن للمرجع غير المتواصل الرجوع إلى كائن const. انظر مثال الوظيفة التالية.
int = 200 ؛
(3) قيمة الكائن المشار إليها بواسطة const ثابتة ولا يمكن تعديلها.
const A = 200 ؛
(4) يمكن أن يشير مرجع const إلى متغيرات من أنواع مختلفة ، ولكنه سوف ينتج متغيرًا مؤقتًا. على النحو التالي:
مضاعفة A = 3.14 ؛ // const int & ref = tmp ؛ المرجع هو في الواقع متغير مؤقت
3 مرجع تمرير كمعلمة
تمرير مرجع كمعلمة هو أحد المعلمات. لا يحتاج إلى تخصيص مساحة الذاكرة عند تهيئة المعلمة الفعلية.
تبادل int & a int & b) {int tmp = a ؛4 المرجع كقيمة إرجاع الوظيفة
أولا قائمة الأمثلة ، على النحو التالي:
int A [] = {1،2،3،5،6،7،9،0} ؛هذه وظيفة أخرى للمراجع ، حيث يمكن وضع الوظيفة على يسار مشغل المهمة. تُرجع وظيفة الفهرس مرجع [].
5. الفرق بين المرجع والمؤشر
(1) مرجع الوصول هو الوصول المباشر ، ومؤشر الوصول هو الوصول غير المباشر.
(2) المرجع هو الاسم المستعار للمتغيرات.
(3) بمجرد تهيئة المرجع ، لا يمكن الرجوع إلى أي متغيرات أخرى ، ولكن يمكن للمؤشر
(4) استخدم المراجع قدر الإمكان واستخدم المؤشرات كلما كان عليك ذلك.
شكرًا لك على القراءة وشرح الاختلافات بين المراجع والمؤشرات في C ++ بالتفصيل.