التي ترتبط بشكل غير مباشر. يشير مؤشر واحد (على سبيل المثال ، char *ptr) إلى موقع ذاكرة يحمل عنوان البيانات الفعلية. يشير مؤشر مزدوج (على سبيل المثال ، Char ** PTR) إلى موقع ذاكرة يحمل عنوان المؤشر ، والذي يشير إلى البيانات نفسه. يضيف المؤشر الثلاثي (على سبيل المثال ، char *** ptr) مستوى آخر من عدم التوجيه. عند استخدام مستويات متعددة من المؤشرات أمر منطقي:
في سياق البرمجة الموجهة للكائنات ، يمكن استخدام مؤشر ثلاثي لتمثيل التسلسل الهرمي للمؤشر المعقد. على سبيل المثال ، ضع في اعتبارك بنية الفئة C التالية:
Class A { عام: شار *ب ؛ } ؛ الفئة ب { عام: شار *ج ؛ } ؛
هنا ، يحتوي كائن A على مؤشر لكائن B ، ويحتوي كائن B على مؤشر إلى Char. للوصول إلى قيمة char من مثيل A ، سنحتاج إلى استخدام dereferencing الثلاثي:
a ؛ char *value = *** A.B.C ؛على سبيل المثال ، يمكن تنفيذ صفيف ثنائي الأبعاد باستخدام مؤشر مزدوج:
class A { public: char *b; }; class B { public: char *c; };
للوصول إلى عنصر في الصفيف ، سنستخدم dereferencing مزدوجة:
A a; char *value = ***a.b.c;
في بعض الأحيان ، من الضروري الوصول إلى البيانات أو الكائنات بشكل غير مباشر. على سبيل المثال ، في قائمة مرتبطة ، تحتوي كل عقدة على مؤشر للعقدة التالية. لاجتياز القائمة ، نحتاج إلى إطفاء المؤشر للوصول إلى العقدة التالية:
struct node { بيانات int ؛ العقدة *التالي ؛ } ؛ العقدة *الرأس ؛ بينما (الرأس! = فارغ) { int data = head-> data ؛ الرأس = الرأس> التالي ؛ }
char **array; array = new char*[rows]; for (int i = 0; iيمكن استخدام مؤشرات متعددة المستويات لتخصيص الذاكرة وتعاملها بشكل ديناميكي. على سبيل المثال ، يمكن استخدام مؤشر مزدوج لتخصيص الذاكرة لمجموعة من المؤشرات:
A a; char *value = ***a.b.c;int ** صفيف ؛ Array = new int*[size] ؛ // تخصيص الذاكرة: لـ (int i = 0 ؛ iالخلاصة: . عند استخدامها بشكل صحيح ، يمكن للمؤشرات متعددة المستويات تعزيز قابلية قراءة الكود ، والقابلية للصيانة ، والأداء.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3