مؤشر ديريفيرانس هي واحدة من العمليات الأساسية في ج programming البرمجة. يسمح لك المؤشر الذي تم إلغاء الإشارة إليه بالوصول إلى القيمة المخزنة على العنوان المخزن في المؤشر. ومع ذلك ، من أجل إلغاء الإشارة إلى مؤشر بنجاح ، تحتاج إلى معرفة نوع البيانات المخزنة على هذا العنوان.
يجب أن يتطابق نوع المؤشر الذي تم إلغاء الإشارة إليه مع نوع البيانات الذي يشير إليه. على سبيل المثال ، إذا كان مؤشر يشير إلى كائن من نوع إنت ، ثم ديريفيرانس سيكون من نوع إنت. وبالمثل ، إذا كان المؤشر يشير إلى كائن من نوع تعويم ، ثم ديريفيرينس سيكون من نوع تعويم.
في ج++ ، يحتوي المؤشر الذي تم إلغاء الإشارة إليه على نفس نوع المتغير الذي يشير إليه. على سبيل المثال ، إذا كان المؤشر من نوع إنت* ، ثم ديريفيرينس أنها سوف تعطي قيمة نوع إنت. إذا كان المؤشر من نوع تعويم* ، ثم ديريفيرينس أنها سوف تعطي قيمة نوع تعويم. يتيح ذلك للمبرمج العمل بمرونة مع المؤشرات والوصول إلى البيانات عن طريق المؤشر باستخدام العمليات والوظائف المناسبة. يتم إعطاء أمثلة على إلغاء الرجوع إلى المؤشر أدناه.
- تعويم ص = 3.14;
- بتر = & ص
- // إلغاء الإشارة إلى مؤشر والحصول على قيمة
- قيمة تعويم = * بتر ؛ / / القيمة = 3.14
- مؤشر غير مرجعي: التعريف والتطبيق
- أنواع البيانات التي يمكن أن يحتوي عليها المؤشر الذي تم إلغاء الإشارة إليه
- أمثلة على استخدام مؤشرات غير مرجعية على أنواع مختلفة من البيانات
- ما هي أهمية المؤشر الذي تم إلغاء الإشارة إليه في البرمجة
الاختلافات بين المؤشرات غير المرجعية في ج و ج++
أمثلة من التعليمات البرمجية مع مؤشرات ديريفيرينسد في ج C
1. إلغاء الإشارة إلى مؤشر إلى متغير
2. إلغاء الإشارة إلى مؤشر إلى كائن فئة
3. إلغاء الإشارة إلى مؤشر إلى عنصر صفيف
- كيفية تجنب الأخطاء عند استخدام المؤشرات غير المرجعية
- ما هو مؤشر ديريفيرينسد?
- يمكنك إعطاء مثال على مؤشر ديريفيرينسد?
- ماذا يحدث إذا قمت بإلغاء الإشارة إلى مؤشر فارغ?
مؤشر غير مرجعي: التعريف والتطبيق
المؤشر الذي تم إلغاء الإشارة إليه هو مؤشر يشير إلى قيمة أو كائن معين في ذاكرة الكمبيوتر. عندما نقوم بإلغاء الإشارة إلى مؤشر ، فإننا نشير إلى القيمة أو الكائن الذي يشير إليه. في البرمجة ، يتم استخدام المؤشرات غير المرجعية للوصول إلى البيانات وتنفيذ العمليات معها.
يتم استخدام عامل إلغاء الرجوع * لإلغاء الرجوع إلى المؤشر. عند تطبيق هذا المشغل على مؤشر ، يتم الوصول إلى القيمة التي يشير إليها المؤشر. وبالتالي ، فإن المؤشر الذي تم إلغاء الإشارة إليه يوفر لنا القدرة على العمل مع البيانات التي يشير إليها.
غالبا ما تستخدم المؤشرات غير المرجعية في ج و ج languages لغات البرمجة ، حيث يعد العمل مباشرة مع الذاكرة جزءا لا يتجزأ من البرمجة. إنها توفر للمبرمج المرونة والكفاءة في معالجة البيانات ، خاصة عند العمل بكميات كبيرة من المعلومات أو عند العمل مع عمليات منخفضة المستوى.
يمكن أن يكون مثال استخدام مؤشر غير مرجعي كما يلي:
إعلان مؤشر لمتغير عدد صحيح:
إنت * بتر;
نحن تخصيص الذاكرة لمتغير صحيح وتعيين عنوان هذه الذاكرة إلى المؤشر:
بتر = جديد إنت;
تعيين قيمة لمتغير عبر مؤشر غير مرجعي:
* بتر = 10;
إخراج قيمة المتغير:
كوت < < * بتر;
في هذا المثال ، نقوم بإنشاء مؤشر لمتغير عدد صحيح ، وتخصيص ذاكرة له ، وتعيين قيمة للمتغير من خلال مؤشر غير مرجعي وعرض القيمة على الشاشة. وبالتالي ، نصل إلى قيمة المتغير من خلال مؤشر.
يتطلب استخدام المؤشرات التي تم إلغاء الإشارة إليها رعاية واهتمام المبرمج ، نظرا لأن إلغاء الإشارة غير الصحيحة للمؤشر يمكن أن يؤدي إلى أخطاء في تنفيذ البرنامج أو نتائج غير صحيحة. لذلك ، عند العمل مع المؤشرات التي تم إلغاء الإشارة إليها ، من الضروري مراقبة الاستخدام الصحيح للمؤشرات والإفراج الصحيح عن الذاكرة لتجنب تسرب الذاكرة والمشاكل الأخرى.
أنواع البيانات التي يمكن أن يحتوي عليها المؤشر الذي تم إلغاء الإشارة إليه
مؤشر ديريفيرينسد في ج / ج programming لغة البرمجة يسمح لك بالوصول إلى القيمة التي يشير المؤشر إلى. يعتمد نوع البيانات المراد تمثيلها بهذه القيمة على نوع المؤشر.
فيما يلي الأنواع الرئيسية للبيانات التي يمكن احتواؤها في مؤشر غير مرجعي:
أنواع عدد صحيح (إنت ، لونغ ، شار): إذا كان المؤشر يحتوي على نوع مؤشر عدد صحيح (على سبيل المثال ، إنت*) ، ديريفيرينغ المؤشر بإرجاع قيمة عدد صحيح.
الأنواع الحقيقية (تعويم ، مزدوج): إذا كان المؤشر يحتوي على نوع مؤشر إلى رقم حقيقي (على سبيل المثال ، مزدوج*) ، فإن إلغاء الإشارة إلى المؤشر يعيد قيمة رقم حقيقي.
نوع الحرف (حرف): إذا كان المؤشر يحتوي على نوع مؤشر حرف (على سبيل المثال ، حرف*) ، فإن إلغاء الإشارة إلى المؤشر يعيد الحرف.
الهياكل والفئات: إذا كان المؤشر من نوع مؤشر إلى بنية أو فئة (على سبيل المثال ، بنية ميستروكت*) ، ديريفيرينس المؤشر بإرجاع قيمة الهيكل أو الفئة.
- أمثلة على استخدام مؤشرات غير مرجعية على أنواع مختلفة من البيانات
- برينتف ("قيمة الحرف: ٪ ج
"،القيمة);
مؤشر ديريفيرينسد إلى نوع بيانات مخصص:
شخص الهيكل {
اسم الحرف [20];
كثافة العمليات العمر;
};
هيكل شخص شخص;
هيكل الشخص * بتر = والشخص
(*بتر).العمر = 25 ؛ / / إلغاء الرجوع إلى المؤشر والوصول إلى حقل العمر
برينتف ("العمر: ٪ د
"،(*بتر).العمر);
في كل من هذه الأمثلة ، يتيح لك إلغاء الإشارة إلى مؤشر الوصول إلى القيمة المخزنة في العنوان الذي يشير إليه المؤشر واستخدام هذه القيمة لاحقا في البرنامج. يمكن أن يكون هذا مفيدا ، على سبيل المثال ، لنقل البيانات من خلال المؤشرات أو للعمل مع الذاكرة الديناميكية.
ما هي أهمية المؤشر الذي تم إلغاء الإشارة إليه في البرمجة
مؤشر ديريفيرانس هي واحدة من العمليات الرئيسية عند العمل مع مؤشرات في لغات البرمجة مثل ج أو ج++. عند إلغاء الإشارة إلى مؤشر ، يتم الحصول على الوصول إلى القيمة التي يشير إليها.
يتم عرض قيمة المؤشر الذي تم إلغاء الإشارة إليه في البرنامج كمتغير منتظم من النوع الذي يشير إليه المؤشر.
قبل إلغاء الإشارة إلى مؤشر ، تحتاج إلى التأكد من أنه صحيح وأن المؤشر ليس صفرا (نولبتر). خلاف ذلك ، قد يؤدي إلغاء الإشارة إلى مؤشر غير صحيح إلى حدوث خطأ ، على سبيل المثال ، خطأ التجزئة.
يمكن استخدام المؤشر الذي تم إلغاء الإشارة إليه لقراءة أو كتابة قيمة إلى موقع الذاكرة الذي يشير إليه. على سبيل المثال ، إذا كان لدينا مؤشر لمتغير عدد صحيح ، فبعد إلغاء الإشارة إلى المؤشر ، يمكننا الحصول على قيمته أو تغييره:
الباحث أ = 5;
إنت * ع = & أ
* ص = 10 ؛ / / تغيير قيمة المتغير أ من خلال إلغاء الرجوع إلى المؤشر ص
الباحث ب = * ص ؛ / / قراءة قيمة المتغير أ من خلال إلغاء الرجوع إلى المؤشر ص
يمكن أيضا استخدام المؤشر الذي تم إلغاء الإشارة إليه لتمرير مؤشر إلى دالة أو للوصول إلى عناصر الصفيف من خلال مؤشر.
من المهم أن تتذكر أنه يجب استخدام إلغاء الرجوع إلى المؤشر بحذر ، لأن الاستخدام غير الصحيح للمؤشرات يمكن أن يؤدي إلى أخطاء وسلوك برنامج غير متوقع. لذلك ، عند العمل مع المؤشرات ، يجب أن تكون حذرا وحذرا.
الاختلافات بين المؤشرات غير المرجعية في ج و ج++
في ج و ج programming لغات البرمجة ، هناك اختلافات في العمل مع المؤشرات التي تم إلغاء الإشارة إليها. يعني إلغاء الإشارة إلى المؤشر الوصول إلى قيمة مخزنة على العنوان المحدد بواسطة المؤشر.
أحد الاختلافات الرئيسية بين ج و ج is هي قاعدة الكتابة. في ج ، يحتوي المؤشر الذي تم إلغاء الإشارة إليه على نوع محدد بواسطة نوع المؤشر ، بينما في ج++ ، يمكن تحديد نوع المؤشر الذي تم إلغاء الإشارة إليه تلقائيا حسب سياق الاستخدام.
لنفترض أن لدينا مؤشر ص إلى عدد صحيح:
الباحث الدولي * ع;
في ج ، للوصول إلى القيمة التي يشير إليها المؤشر ص ، يجب عليك استخدام عامل إلغاء الرجوع *:
إنت س = * ص;
في ج++ ، يمكن أيضا إجراء هذا الإلغاء باستخدام المشغل *:
إنت س = * ص;
ومع ذلك ، في ج++ ، من الممكن أيضا تحديد نوع المؤشر الذي تم إلغاء الإشارة إليه تلقائيا. في المثال التالي ، المؤشر ص إلى عدد صحيح يمكن إلغاء الإشارة إليه كمؤشر إلى عدد صحيح ثابت:
كونست إنت * ف;
في هذه الحالة ، ستؤدي محاولة تغيير قيمة المؤشر الذي تم إلغاء الإشارة إليه إلى حدوث خطأ في التجميع. هذا هو نوع السلامة التي أدخلت في ج++. ج ليس لديه مثل هذه الفرصة لتحديد نوع المؤشر الذي تم إلغاء الإشارة إليه.
لذلك ، في هذه المقالة نظرنا في الاختلافات في العمل مع مؤشرات ديريفيرنسد في ج و ج++. في ج ، يحتوي المؤشر الذي تم إلغاء الإشارة إليه على نوع محدد بواسطة نوع المؤشر ، بينما في ج++ ، يمكن تحديد نوع المؤشر الذي تم إلغاء الإشارة إليه تلقائيا حسب سياق الاستخدام. يرجع هذا الاختلاف إلى قواعد الكتابة المختلفة في كلتا اللغتين.
أمثلة التعليمات البرمجية مع مؤشرات ديريفيرينسد في ج C
فيما يلي أمثلة على التعليمات البرمجية التي توضح استخدام المؤشرات التي تم إلغاء الإشارة إليها:
- 1. إلغاء الإشارة إلى مؤشر إلى متغير
- يتيح لك إلغاء الإشارة إلى المؤشر الحصول على قيمة المتغير الذي يشير إليه:
- عدد الباحث = 42;
- ستد:: كوت < < "قيمة متغيرة:" < < ديريفيرينسيدفالو << ستد:: إندل;
- نتيجة تنفيذ البرنامج:
- قيمة المتغير: 42
- 2. إلغاء الإشارة إلى مؤشر إلى كائن فئة
إلغاء الإشارة إلى مؤشر إلى كائن فئة يسمح لك للعمل مع الحقول والأساليب:
فئة ميكلاس {
العامة:
طباعة باطلة () {
الأمراض المنقولة جنسيا:: كوت < < " مرحبا العالم!"<<الأمراض المنقولة جنسيا:: إندل;
}
};
ميكلاس أوبج;
ميكلاس * بتر = و أوبج / / مؤشر إلى كائن من فئة ميكلاس
(*بتر).برينتمسيج () ؛ / / مؤشر ديريفيرينسد
// بناء الجملة البديل:
// بتر- > برينتمسيج();
نتيجة البرنامج:
مرحبا ، العالم!