أهلا ومرحبا بكم مرة أخرى.
نظرًا لأن حساب النقاط هو مفهوم يصعب فهمه وفهمه
، فقد أردت أن أخوض في مثال أخير
يوضح حقًا هذا المفهوم ، إنه يقوم بعمل جيد.
وإذا فهمت هذا المثال ، فلن تواجه
مشكلة في حساب النقاط.
لذا فإن المثال الأول الذي أريد أن أعرضه لكم
هو تأثير إضافة قيمة عدد صحيح إلى المؤشر.
لذلك عندما نقوم بحساب المؤشر مع الجمع ، يمكننا
في الواقع أن نرى كيف يعمل من حيث العناوين.
لذا هنا في هذا البرنامج ، كل ما أفعله هو إنشاء سلسلة
، مصفوفة أحرف ، تسمى سلسلة نصية.
ثم أقوم بإنشاء مؤشر حرف يسمى p.
سأمر على كل طول السلسلة وهو مضاعف.
لذلك أنا أمر بالمصفوفة بأكملها.
ما عليك سوى تسمية Basic for loops بطول قوة ومتعددة الحجم ومتعددة.
ثم أقوم بطباعة كل سلسلة أو
حرف فعلي داخل تلك المصفوفة.
وأيضًا ما أفعله هو أنني أعرض العنوان
ثم العنوان مع
الرقم الفعلي الذي أضفته إليه.
لنلق نظرة على ناتج هذا فقط لأن الناتج يوضح
مثالًا جيدًا حقًا لحساب النقاط.
لذا دعنا نذهب إلى كتل التعليمات البرمجية ونشغل هذا.
لذلك نحن هنا في كتل التعليمات البرمجية. لقد قمت بتنظيف الكود قليلاً.
أنا أستخدم طول str ، وقم بتعيين طول strn لأنه يتضمن إضافيًا.
وأريد فقط تشغيل هذا.
لذلك عندما أقوم بتشغيل هذا ، ما ستلاحظه هو أنه يوضح
لك كيف تتذكر شكل الذاكرة ، ويظهر لك القيم التي تقوم
بحساب النقاط. لذا ، إذا قلت عدة sub-0 ، فتذكر
أن المضاعفة تحتوي فقط على سلسلة.
لكن إذا نظرنا إلى هذا وقلنا ننظر إلى محتويات
المصفوفة ، ومضاعفات 0 هي a ، ومضاعفات 1 هي مسافة ثم الباقي هي سلسلة.
هذه هي المصفوفة.
بجانب ذلك ، يشبه إضافة 0 إلى المؤشر وإلغاء الإشارة
إليه ، وإضافة 1 وإضافة 2.
ويوضح لك كيف يمكنك إجراء حساب المؤشر عن طريق إلغاء الإشارة
إلى المؤشر نفسه وإضافة أرقام إليه.
إذن فالمؤشر زائد سبعة يتم إلغاء الإسناد الذي تحصل عليه g.
ثم في العمود الثالث ، أعرض عليك العناوين
الفعلية كلما زادت. لذا فإن عناوين كل عنصر في المصفوفة
باستخدام علامة العطف الموجودة في مصفوفة الأحرف
فقط ، نرى العنوان 060feff للعنصر 0 وما إلى ذلك.
ثم ننظر إلى العناوين إذا أضفنا فقط إلى
المؤشر نفسه دون إلغاء الإشارة إليه ، وسترى
العناوين في نفس الخط.
ومن ثم يمكننا إلقاء نظرة على البنية لنرى ما يحدث هنا من حيث
أول شيء نعرضه في الواقع هو الفهرس في المصفوفة وهو مجرد عداد.
ثم نعرض النسبة المئوية c وهي الحرف الموجود
في المصفوفة.
الشيء التالي الذي نعرضه هو إلغاء
الإشارة إلى المؤشر زائد I.
ما نفعله هنا هو أننا نعرض أنا ثم
نعرض اشتقاق المؤشر زائد I ، القيمة الفعلية.
لذلك نعرض
العداد الفعلي
على أنه d فقط ، ثم النقطة c هي مرجعنا
المرجعي. إذن p هو مؤشرنا.
نحن نقول فقط p زائد I ، حساب المؤشر ، ثم نقوم بإلغاء
الإشارة إليه.
ثم للحصول على العناوين ، كل ما نحتاج
إلى القيام به للحصول على عنوان المصفوفة هو قول علامة
العطف المتعددة ثم الفهرس.
للحصول على أول عنوان للمؤشر هنا ، نقول فقط p
زائد I للحصول
على العداد الفعلي الذي يوضح
لك كيف نزيد p ، فنحن فقط نضيف p زائد
النسبة المئوية d.
ولكنه يقوم بعمل جيد في إظهار
الطرق المختلفة التي يتم بها عرض الذاكرة التي
نشير إليها إلى العناوين
وكيف أنها مكافئة للفهارس المختلفة
في المصفوفة والمؤشرات الفعلية.
اعتقدت أن هذا قام بعمل جيد.
أريد أن ألقي نظرة على مثال آخر يقوم بعمل جيد آخر فيما
يتعلق بحساب المؤشر مع عقود الشراء. لأن هذه هنا أعداد
صحيحة. لذلك كل ما يتعين علينا القيام به هو إضافة واحد
والارتفاع تلقائيًا إلى البايت التالي وما إلى ذلك. دعونا نلقي نظرة على ما نفعله ، نحن نتوق.
لذا في هذا المثال ، أردت أيضًا أن أوضح كيف يمكنك فعل
الشيء نفسه بمؤشر طويل وطويل.
مع مؤشر الحرف ، كان مجرد مجموعة أحرف سلسلة.
ولكن حتى بالنسبة للمصفوفات الطويلة ، والتي تكون بأحجام
مختلفة ، لا يزال بإمكاننا تكرارها باستخدام مؤشر
ويمكنك أن ترى كيف يتغير عدد البايت بالفعل.
لذلك على الرغم من أننا نقول إن لدينا مؤشرًا طويلاً ونضيف واحدًا إليه ، فإننا في
الواقع نضيف 4 بايت إليه لأن الطول أكبر قليلاً وسنرى ذلك في هذا المثال.
لنقم الآن بتشغيل هذا المثال في كتل التعليمات البرمجية.
إذن هذا هو مثالنا. مرة أخرى ، لدينا عدد صحيح ، عداد حلقي.
لدينا مجموعة طويلة 15l.
نحدد l بوضع اللاحقة ثم نحدد l الخاصة بهم
، ولدينا مؤشر طويل يشير إلى مضاعفات.
مرة أخرى ، نظرًا لأنها مصفوفة ، لا يتعين علينا استخدام عنوان المشغل.
سوف نمر على طول كامل. هنا لا يمكننا استخدام طول التحريك علينا
استخدام الحجم ، وعلينا في الواقع تقسيمه على كل نقطة في المصفوفة.
إذن ، الحجم الإجمالي مقسومًا على النقطة الفردية في المصفوفة
، وذلك عندما نريد القفز للخارج لأن هذه
تتذكر عناويننا التي تتزايد بمقدار 4 بايت لكل منها.
ومرة أخرى ، ما نقوم به هنا هو أننا نعرض فقط كل
من المؤشر مقابل المصفوفة ونبين لك كيفية
ارتباطهما ثم نعرض العدد الإجمالي الفعلي
للبايتات على نظامنا.
وهذا يوضح مرة أخرى كيفية ارتباط المصفوفات
بالمؤشرات.
لذا إذا قمنا بتشغيل هذا
، فسنرى ناتجًا مشابهًا. ولكن الشيء المختلف هنا هو أن
حجم العنوان يزيد بمقدار 4 بايت. لذلك سنقوم بطباعة العنوان والمؤشر.
إذن بالنسبة إلى العنوان والمؤشر زائد
0 ، فسيكون ذلك مساويًا للصفيف
الفرعي 0 وهو العنوان 6356728.
ولإلغاء إشارة المؤشر ، نحصل على القيمة 15.
إذن ، p زائد 0 سيظل مساويًا للصفيف الفرعي 0.
ومرة أخرى نفعل الشيء نفسه بالنسبة لـ p زائد واحد p زائد 2 و p زائد
3 ، وكلها تكافئ النقاط الصحيحة في المصفوفة من أجل الفهرس.
تتزايد العناوين بمقدار 4 بايت ، لكن لا يزال بإمكاننا إضافة واحد
2 و 3 ونرى أن القيم هي نفسها.
ثم يخبرنا أن هذا الطول يشغل 4 بايت وهذا هو سبب ارتفاع العناوين بمقدار 4.
المهم هنا هو أنه لا يزال بإمكاننا إضافة واحدة إليه
والمترجم يعرف أنه يذهب إلى العنوان التالي.
لذا ، سواء كان لدينا رقم طويل أو حرف أو أيًا كان نوع
البيانات المعين هذا داخل النظام ، فإن إضافة واحد
أو 2 سيضيف العدد الصحيح من البايت.
لذا فقط مثال رائع آخر أردت أن
أعرضه لكم لأن حساب المؤشر هذا مهم حقًا وهو
مفيد حقًا عند تكرار أو عبور
مصفوفة ، فهو يجعله أكثر وضوحًا وأكثر كفاءة.
لذلك آمل أن يكون هذا قد ساعد. شكرًا لك.