أهلا ومرحبا بكم مرة أخرى.
في هذه المحاضرة أريد أن أتحدث عن العلاقة بين المؤشرات والمصفوفات.
هناك علاقة قوية ، ونحن بحاجة إلى فهم هذه العلاقة قبل أن نتمكن
من الحديث عن حساب المؤشر. اذا هيا بنا نبدأ.
المصفوفة هي مجموعة كائنات من نفس النوع
يمكنك الرجوع إليها باستخدام اسم واحد. نحن نعلم أننا جيدون في المصفوفات الآن.
لقد استخدمنا مجموعة الأحرف لبضعة أقسام الآن.
إنها مصفوفة يمكنك الوصول إليها باستخدام فهرس
أو منخفض داخل تلك الأقواس. نتذكر ذلك.
نعلم أن المصفوفات تستند إلى الصفر وأنها تبدأ من الصفر.
لكن مرة أخرى ، إنها مجرد طريقة للاحتفاظ بعدة أشهر بنفس اسم المتغير.
المؤشر هو متغير له قيمته ، وعنوان الذاكرة هو قيمته
، ويمكن أن يشير
إلى متغير أو ثابت آخر من نوع معين.
يجب علينا أيضًا في هذه المرحلة أن نكون واضحين جدًا بشأن ماهية المؤشر.
إنه يحمل عنوان ذاكرة فقط.
يمكنك استخدام مؤشر للاحتفاظ بعنوان المتغيرات المختلفة في أوقات مختلفة.
لكن يجب أن يكون لديك نفس النوع. يجب أن يشير مؤشر int
إلى استعادة عنوان نوع int.
تبدو المصفوفات والمؤشرات مختلفة تمامًا
، لكنها مرتبطة ارتباطًا وثيقًا ويمكن استخدامها أحيانًا بالتبادل
، خاصةً مع مصفوفة الأحرف.
يمكنك في الواقع إنشاء حرف يتذكر وهو عبارة عن
سلسلة ويمكنك إنشاء مؤشر حرف يكون في الأساس نفس الشيء.
هناك اختلافات طفيفة فقط سواء
قمت بتخصيص الذاكرة أم لا وتحريرها بمؤشر حرف.
باستخدام مصفوفة الأحرف ، لا يتعين عليك القيام
بذلك ، ولكن الحرف a يكون أيضًا بحجم ثابت.
لذلك إذا قمت بإنشاء سلسلة مصفوفة
أحرف بحجمها 20 ، يمكنك تخزين 19 حرفًا فقط.
باستخدام مؤشر الحرف ، يمكنك استخدام إدارة الذاكرة
الديناميكية ويمكنك زيادة الحجم أو تقليله ، ويمكن أن يكون
أكثر كفاءة فيما يتعلق بالذاكرة.
لكن أحد أكثر استخدامات المؤشرات شيوعًا في c هو استخدام المؤشرات إلى المصفوفات.
هذا هو الوقت الذي تستخدم فيه المؤشرات
في أغلب الأحيان ، خاصةً على الأحرف.
مؤشر الحرف هو نفس مصفوفة الأحرف.
الأسباب الرئيسية لاستخدام المؤشرات
للمسح هي أسباب الراحة التوضيحية وكفاءة البرنامج.
لذلك يمكنك استخدام إما مصفوفة واحدة أو مؤشر في كثير من الحالات إلا
عندما تتحدث عن إدارة الذاكرة الديناميكية.
لكن في معظم الحالات يمكنك ذلك. والفرق الوحيد حقًا هو تركيبها
، إنها التدوين.
إنه ما إذا كنت تستخدم رمزًا منخفضًا للوصول إلى عنصر أم لا
أو ما إذا كنت تستخدم حساب النقاط أم لا
سواء كنت تستخدم مؤشر الحرف للإشارة إلى العنوان المحدد لهذا العنصر أم لا.
من الأفضل أيضًا استخدام مؤشرات الأحرف أيضًا.
تؤدي المؤشرات إلى المصفوفات عمومًا إلى رمز يستخدم ذاكرة أقل ويتم تنفيذه بشكل أسرع.
لذلك تريد استخدام مؤشر للأحرف قدر الإمكان ومؤشر
لأنواع البيانات الأخرى أيضًا.
لأنه أسرع وأقل استخدام للذاكرة. المؤشرات فوق المصفوفات في أغلب الأحيان.
إذا كان لديك مصفوفة مكونة من 100 عدد صحيح ، فنحن
نعلم ما يعنيه هذا ، فأنت تقول فقط إن القيمة int هي 100. 100 هو الحجم.
هذا يعني أنه يمكنك تخزين 100 عدد صحيح في تلك المصفوفة.
يمكنك أيضًا تحديد مؤشر. سنقوم بتسمية مؤشر قيمه لأنه يشير
إلى مصفوفة القيم ويمكن استخدامه
للوصول إلى الأعداد الصحيحة الموجودة في هذه المصفوفة.
لذلك نحن نقول فقط مؤشر قيم الطور. نحن نعرف كيف نعلن عن مؤشر في هذه المرحلة.
عندما تقوم بتعريف مؤشر يُستخدم لتوجيه عناصر المصفوفة
، لا يمكنك تعيين المؤشر كمؤشر نوع إلى صفيف.
حتى هذه النقطة ، كل ما سمعنا عنه هو مؤشر للنهاية
، ومؤشر لمضاعفة.
لكن عندما تستخدم المصفوفات ، لا تقول مصفوفة مدببة.
يشير هذا المؤشر الفعلي إلى عنصر معين موجود في المصفوفة.
لذا ضع ذلك في الاعتبار. إنها ليست مصفوفة كاملة في الواقع
عندما تمسح مؤشرًا بعنوان القيم.
لذلك لتعيين مؤشر القيم للإشارة إلى العنصر الأول في صفيف القيم ، كل ما
عليك فعله هو أن تقول القيم تشير أو تساوي القيم.
ليس عليك وضع العنوان هناك أو أي شيء. لأن مجموعة
القيم هي مؤشر.
هذا ما عليك أن تقود في رأسك هو أن كل هذه المصفوفات
هي مؤشرات تحت غطاء المحرك.
لذلك إذا كنت تريد تعيين العنصر الأول
من المصفوفة إلى مؤشر ، فكل ما عليك فعله هو تحديد المصفوفة على الجانب الأيمن
من عامل التشغيل equals وعلى الجانب
الأيسر لديك فقط مؤشر القيم.
سيشير هذا إلى العنوان الأول في المصفوفة أو العنصر الأول.
لا يتم استخدام عامل العنوان ، لاحظ ذلك.
يتعامل المترجم c مع مظهر اسم المصفوفة
بدون خط منخفض كمؤشر للمصفوفة.
لذا ، فإن تحديد القيم بدون خط منخفض له تأثير
إنتاج مؤشر للعنصر الأول من القيم.
ما يعنيه هذا هو أنه يمكنك الآن الإشارة إلى القيم اللاحقة في
المصفوفة عن طريق زيادة المؤشر فقط ، للانتقال إلى العنوان التالي.
وهذا ما سنتحدث عنه في المحاضرات القليلة القادمة عندما نتحدث عن حساب النقاط.
وهو حقًا مجرد رمز وهو أيضًا شيء يتعلق بالكفاءة.
لذا فإن الطريقة المكافئة لإنتاج مؤشر إلى بداية القيم هي أيضًا
تطبيق عنوان المشغل على العنصر الأول من اليمين.
لذلك يمكنك القيام بذلك بطريقتين ، في كلتا الحالتين جيد.
لكن يمكنك أيضًا القيام بذلك. يمكنك أن تقول عنوان مؤشر القيم للقيمة دون الصفر.
سيؤدي ذلك إلى تعيين مؤشر القيم على العنصر الأول في المصفوفة.
لذا يمكنك استخدام هذا أو يمكنك فقط أن تقول القيم ، النقطة تساوي القيمة.
من الواضح أنه بدون علامة العطف وبدون الرمز المنخفض
، يكون الرمز أقل قليلاً أو أسهل في الكتابة.
قد يكون هذا أكثر وضوحًا لأنك لا
تعرف بالضرورة أن القيم عبارة عن مصفوفة ما لم تنظر إلى الإعلان.
لكن مرة أخرى ، في كلتا الحالتين على ما يرام. يساوي مؤشر القيم القيم أو مؤشر
القيم يساوي عنوان القيمة الفرعية صفر.
إنها مسألة تفضيل المبرمج. ومرة أخرى ، إنه شيء رمزي.
لذا فقط للتكرار ،
عندما يكون لديك تعبيرين هما ar sub-i
و asterisk ar زائد i ، فإنهما متكافئان
في المعنى.
لذلك نريد فقط التأكد من أنك تفهم هذا.
كلاهما يعمل إذا كان ar هو اسم المصفوفة.
يمكنك استخدام المؤشر ويمكنك إلغاء الرجوع إليه.
وكلاهما يعمل إذا كان متغير مؤشر.
استخدم تعبيرًا مثل ar plus plus يعمل فقط إذا كانت ar عبارة عن متغير مؤشر.
لذلك لا يمكنك زيادة مصفوفة بقول زائد
زائد ونتوقع أن ينتقل إلى العنصر التالي.
يمكنك القيام بذلك فقط على مؤشرات أو مؤشرات الصفيف.
لذا إذا كان لدينا مؤشر ar فهذا مؤشر يشير إلى مصفوفة وأردنا الانتقال
إلى العنصر التالي ، يمكننا فقط زيادته في كل مرة.
لكن إذا قلت ar sub-i لأن ar sub i مصفوفة والمصفوفة
مؤشر ، يمكنك إلغاء الإشارة إليها بالقول إن ar الذي
هو ar هو مؤشر قمنا بتعيينه
ar زائد i ، إنه نفس الشيء.
لذلك في المحاضرات القليلة القادمة ، سوف نتحدث عن حساب
النقاط وهذا يرتبط بقوة بالعلاقة بين المصفوفات والمؤشرات.
يمكن أن تكون المؤشرات صفائف. إنها ليست مصفوفة مؤشر ، إنها عنصر.
لذا يمكنك استخدام عنوان المؤشر للتنقل
عبر مصفوفة ، والتكرار عبر
مصفوفة. شكرًا لك.