ما هو الفرق بين Null و Nullptr في C ++؟ (مفصل) - جميع الاختلافات

 ما هو الفرق بين Null و Nullptr في C ++؟ (مفصل) - جميع الاختلافات

Mary Davis

تعتبر "Nullptr" كلمة رئيسية تصور الصفر كعنوان ، في حين أن "Null" هي القيمة Zero كعدد صحيح.

إذا كنت مبرمجًا ، فقد تعرف مدى أهمية فهم لغات الكمبيوتر للترميز بشكل أفضل. لكن في بعض الأحيان ، قد يكون الأمر محيرًا بعض الشيء ، وقد تختلط بين شيئين.

مماثلة هي حالة Null و Nullptr في لغة C ++. دعني أخبرك ما يعنيه هذان المصطلحان ووظائفهما لمساعدتك على فهم الاختلاف بينهما واستخدامهما.

دعنا نتعمق في الأمر!

ما هي لغات الكمبيوتر؟

يمكن تعريف لغات الكمبيوتر كرمز أو بناء جملة يُستخدم لكتابة البرامج والتطبيقات المحددة.

إنها في الأساس لغة رسمية تستخدم للتواصل مع أجهزة الكمبيوتر. بالطريقة نفسها ، تمتلك البلدان المختلفة لغات مختلفة تساعد الأشخاص في مشاركة الأفكار ، وكذلك أجهزة الكمبيوتر.

تم اختراع هذه اللغات لفهم برمجة الكمبيوتر والعمل عليها. بشكل عام ، يمكن تصنيف لغة الكمبيوتر إلى ثلاث فئات رئيسية:

  • لغة التجميع

    تعتبر هذه لغة منخفضة المستوى تستخدم للمعالجات الدقيقة والعديد من الأجهزة الأخرى القابلة للبرمجة. إنها لغة من الجيل الثاني. تشتهر بكتابة نظام تشغيل وكتابة تطبيقات سطح مكتب مختلفة.

  • لغة الآلة

    هذه اللغة الأم هي لغة الجيل الأول.يطلق عليه رمز الآلة أو حتى رمز الكائن ، الذي يحتوي على مجموعة من الأرقام الثنائية 0 و 1. يتم فهم هذه الأرقام وقراءتها بواسطة نظام كمبيوتر يفسرها بسرعة.

  • لغة عالية المستوى

    تم إنشاء هذا بسبب مشكلات قابلية النقل في اللغات القديمة. لم يتمكن الرمز من نقل هذا يعني أن الرمز تمت كتابته على جهاز واحد. هذه اللغة سهلة الفهم وسهلة الاستخدام للغاية.

يُعرف جزء اللغة الذي يفهمه الكمبيوتر باسم "ثنائي". من ناحية أخرى ، تُعرف ترجمة لغة البرمجة إلى ثنائي باسم "الترجمة".

باختصار ، تسمح لغات البرمجة للأشخاص بإعطاء التعليمات لأجهزة الكمبيوتر حتى يتمكنوا من قراءتها وتنفيذها. لكل لغة كمبيوتر ميزاتها المميزة ، من لغة C إلى Python.

تجعل هذه اللغات من الأسهل والأسرع لأجهزة الكمبيوتر معالجة البيانات الكبيرة والمعقدة بكفاءة أكبر. هناك العديد من لغات البرمجة في العالم اليوم. عدد قليل من هذه تشمل Java و Python و HTML و C و C ++ و SQL.

ما هي لغة C ++؟

لغة C ++ هي إحدى لغات البرمجة الأكثر شيوعًا في العالم. ستجد هذه اللغة في أنظمة التشغيل وواجهات المستخدم الرسومية والأنظمة المضمنة في عالم اليوم.

إنها لغة مشتركة بين الأنظمة الأساسية تُستخدم لإنشاء تطبيقات عالية الأداء. تم إنشاء لغة C ++بواسطة Bjarne Stroustrup ، المسؤول أيضًا عن إنشاء لغة C. كما هو واضح من اسمها ، هذه اللغة هي امتداد للغة C.

يسمح للمبرمجين بالتحكم العالي في موارد النظام والذاكرة. قد تعتقد أنه تم تحديثه بالفعل. ومع ذلك ، تم تحديث اللغة ثلاث مرات في 2011 و 2014 و 2017. انتقلت من C ++ 11 ، C ++ 14 ، إلى C ++ 17.

حتى يومنا هذا ، تحظى لغة C ++ بتقدير كبير نظرًا لقابليتها الكبيرة للنقل ، مما يسمح للمبدعين بتطوير برامج يمكن تشغيلها بكفاءة على أنظمة تشغيل أو منصات مختلفة.

لماذا يستخدم الكثير C ++؟

هذه اللغة منتشرة لأنها لغة برمجة موجهة للكائنات توفر بنية واضحة للبرامج وتساعد على خفض تكاليف التطوير من خلال السماح بإعادة استخدام الكود.

نظرًا لأدائها العالي ، تُستخدم هذه اللغة لتطوير الألعاب وتطبيقات سطح المكتب والمتصفحات وأنظمة التشغيل. ميزة أخرى لهذه اللغة هي أنها محمولة وتسمح للمرء بإنشاء تطبيقات يمكنه تكييفها مع أنظمة أساسية متعددة.

على الرغم من أنه من المعروف أنها واحدة من أكثر اللغات صعوبة في التعلم ، إلا أن لها مزاياها. يعد الفهم أكثر صعوبة من غيره نظرًا للغة متعددة النماذج ووظائفها النحوية الأكثر تقدمًا.

إذا كنت قادرًا على تعلم لغة C ++ ، فسيصبح التعلم أكثر صعوبةلغات البرمجة الأخرى بعد هذه اللغة ، مثل Java و Python.

باختصار ، C ++ هي لغة برمجة ذات أغراض عامة ، وهي لغة برمجة متوسطة المستوى تجعل من الممكن ترميزها في "نمط C". في بعض الحالات ، أنت يمكن إجراء التشفير في أيٍّ من النسقين ، مما يجعل C ++ مثالاً للغة مختلطة .

تحتوي اللغات C و C ++ على حرف Null ، ومؤشر Null ، وعبارة Null (يتم تمثيلها بواسطة فاصلة منقوطة (؛)).

ما هو Null in C ++؟

يعتبر Null ثابتًا داخليًا يحمل قيمة الصفر. إنه ثابت ومؤشر في نفس الوقت في برمجة الكمبيوتر.

أنظر أيضا: ما الفرق بين المعقد والمعقد؟ - كل الخلافات

أثناء وجودك في قاعدة بيانات ، يكون الصفر قيمة. تشير القيمة Null إلى عدم وجود قيمة. عندما يتم استخدام Null كقيمة ، فهو ليس موقع ذاكرة.

علاوة على ذلك ، بدون حرف Null ، لن تتمكن السلسلة النصية من الإنهاء بشكل مناسب ، مما يؤدي إلى العديد من المشكلات. يحتوي الحرف Null على العديد من الاستخدامات المختلفة عبر لغات البرمجة المختلفة.

السؤال هو كيف ستكتب Null في C ++. حسنًا ، إذا كان للثابت الفارغ نوع عدد صحيح ، فيمكن بعد ذلك تحويله إلى قيمة من نوع الفرز.

على سبيل المثال ، يتم استخدام هذا الحرف "Null" في لغة الاستعلام الهيكلية (SQL) كعلامة معينة للإشارة إلى عدم وجود قيمة بيانات في قاعدة البيانات. قاعدة البيانات العلائقية هي عندما تكون القيمة الموجودة في عمود معين غير معروفة أو مفقودة.

علاوة على ذلك ، في C # ،لغة برمجة ، Null تعني "لا شيء". في هذه اللغة ، لا يماثل الصفر الثابت.

ولكن في لغة C ++ ، فإن الحرف Null هو قيمة مؤشر محجوزة فريدة لا تشير إلى أي كائن بيانات صالح. أيضًا ، في لغة C ++ ، تعد الدوال الفارغة مجرد طريقة لتعيين قيمة لمتغيرات المؤشر.

التمييز بين Null و Zero

نظرًا لأن Null تحمل القيمة Zero ، غالبًا ما يتم الخلط بين الناس حول كيفية التفريق بين Null و Zero.

Null في C ++ هي مجرد ماكرو يعرف ثابت مؤشر Null ويكون عمومًا بقيمة صفر. ومع ذلك ، يمنحك Null قيمة مهمة تمثل أن المتغير لا يحمل أي وزن.

حيث أن الصفر قيمة بحد ذاتها ، وهذه هي الطريقة التي ستظل بها طوال تسلسل التدفق. بمعنى آخر ، الصفر هو قيمة الرقم نفسه ، بينما Null تعني فارغًا.

يمكنك التفكير في الأمر على أنه مساحة معينة مخصصة لثلاجة . إذا كانت الثلاجة موجودة ولكنها لا تحتوي على أي شيء ، فستكون القيمة صفرًا. من ناحية أخرى ، إذا كانت المساحة المخصصة للثلاجة لا تحتوي على ثلاجة على الإطلاق ، تكون القيمة خالية.

ماذا يعني Nullptr في C ++؟

تمثل الكلمة الأساسية "Nullptr" قيمة مؤشر Null. يمكنك استخدام قيمة مؤشر Null للإشارة إلى أن مؤشر الكائن أو المؤشر الداخلي أو نوع المؤشر الأصلي لا يشير إلى كائن.

يمكن للمؤشرات فقط الاحتفاظ بمواقع الذاكرة ، والقيم لا يمكنها ذلك.

أولاً ، نحتاج إلى فهم ماهية المؤشر. هو متغير يحمل موقعًا في الذاكرة.

المؤشر الفارغ هو مؤشر يشير عن قصد إلى لا شيء. إذا لم يكن لديك عنوان يمكنك تعيينه لمؤشر ، فيمكنك استخدام Null. تتجنب القيمة Null تسرب الذاكرة وتعطلها في التطبيقات التي تحتوي على مؤشرات.

علاوة على ذلك ، للتحقق من Nullptr ، يمكنك استخدام قيمة المؤشر كشرط للتحقق مما إذا كان المؤشر هو Null في C ++. عند استخدامها في التعبيرات المنطقية ، يتم تقييم المؤشرات الخالية على أنها خاطئة.

لذلك ، يمكن للمرء وضع مؤشر معين في شرط عبارة if للتحقق مما إذا كان Null. باختصار ، Nullptr هي كلمة رئيسية من نوع المؤشر تمثل Zero كعنوان.

السؤال الشائع هو سبب الحاجة إلى Nullptr عندما يكون هناك بالفعل حرف Null. هذا لأنه في C ++ 11 ، Nullptr هو ثابت مؤشر Null ، وهو مطلوب لأنه يحسن أمان الكتابة.

هل Null و Nullptr متماثلان؟

لا. هم ليسوا كذلك. تحقق من هذا الجدول أدناه لمعرفة الاختلافات بينهما أولاً.

Nullptr Null
الكلمة الرئيسية التي تمثل صفرًا قيمة الصفر
تمثل الصفر كعنوان تمثل القيمة كعنوان عدد صحيح
أحدث وظيفة مقترحة أقدم ودالة مهملة
نوع المؤشر الحقيقي تم تنفيذها كاسم مستعار لعدد صحيح

ثابت صفر

لاحظ الكلمات الرئيسية حتى لا يتم الخلط بينكما.

أنظر أيضا: فالتشيون مقابل سيفيتار (هل هناك فرق؟) - كل الاختلافات

يعتبر Null "ثابتًا واضحًا" وهو في الواقع عدد صحيح ويمكن تخصيصه لمؤشر بسبب التحويل الضمني.

في حين أن Nullptr هي كلمة أساسية تمثل قيمة من النوع المحدد ذاتيًا ، ويمكن تحويلها إلى مؤشر ولكن ليس إلى أعداد صحيحة. Nullptr بشكل عام هو مؤشر Null وسيظل دائمًا واحدًا. إذا حاولت تعيينه لعدد صحيح ، فسيؤدي ذلك إلى حدوث أخطاء.

إذا لم تستوعب ذلك بعد ، شاهد هذا الفيديو.

يشرح هذا الفيديو تمامًا ماذا ومتى يجب عليك استخدام Null أو nullptr — code مع جهاز البث.

هل يمكنك استخدام Nullptr بدلاً من Null؟

نعم . على الرغم من أنها ليست متماثلة ، فهناك طريقة لاستخدام Nullptr بدلاً من Null.

إلى جانب ذلك ، Nullptr هي كلمة رئيسية جديدة في C ++ يمكن أن تكون بديلاً لـ باطل. يعطي Nullptr قيمة مؤشر نوع آمن تمثل مؤشرًا فارغًا.

بينما يتجنب البعض استخدام Null لأنه غير مناسب ، فإن هذا أقل شيوعًا في الوقت الحاضر لأن العديد من المبرمجين يتبعون اقتراح استخدام Nullptr بدلاً من Null.

بالإضافة إلى ذلك ، يمكنك استخدام الكلمة الأساسية Nullptr لاختبار ما إذا كان مرجع المؤشر أو المؤشر فارغًا قبل استخدام المرجع.

هل يمكنك اشتقاق Nullptr؟

يمكنك مراعاة nullptr. إذا قمت بذلك ، يمكنك الوصول إلى القيمة على العنوان الذي يشير إليه المؤشر.

في لغات الكمبيوتر ، يُستخدم إلغاء الإسناد للوصول إلى البيانات الموجودة في موقع الذاكرة المشار إليه بمؤشر أو معالجتها.

ومع ذلك ، لا يمكنك القيام بذلك بلغة C . لا يشير المؤشر الفارغ إلى كائن ذي معنى ، محاولة للتراجع ، وهو الوصول إلى البيانات المخزنة. عادةً ما يؤدي المؤشر الفارغ إلى خطأ وقت التشغيل أو تعطل البرنامج الفوري.

في برمجة الكمبيوتر ، عامل الإسناد هو ما يعمل على متغير المؤشر. تقوم بإرجاع قيمة الموقع في الذاكرة المشار إليها بقيمة المتغير . في لغة البرمجة C ++ ، يتم ترميز الاحترام الذي يتم تشغيله بعلامة النجمة (*).

الأفكار النهائية

يمكن للمرء تعريف Null على أنه ماكرو ينتج عنه مؤشر صفري ، مما يعني أنه لا يوجد عنوان لهذا المتغير. Null هو ماكرو قديم في لغة C ينتقل إلى C ++.

وفي الوقت نفسه ، Nullptr هو إصدار أحدث تم تقديمه في C ++ 11 ويقصد به أن يكون بديلاً لـ Null.

لذلك ، اليوم ، من المستحسن أن تبدأ في استخدام Nullptr في الأماكن التي كنت ستستخدم فيها Null بدلاً من ذلك في الماضي أو حتى كتابة هذه السطور.

    انقر هنا لعرض النسخة المختصرة من هذه المقالة.

    Mary Davis

    ماري ديفيس كاتبة وصانع محتوى وباحثة شغوفة متخصصة في تحليل المقارنة في مواضيع مختلفة. تتمتع ماري بشهادة في الصحافة وأكثر من خمس سنوات من الخبرة في هذا المجال ، ولديها شغف لتقديم معلومات غير متحيزة ومباشرة لقرائها. بدأ حبها للكتابة عندما كانت صغيرة وكانت القوة الدافعة وراء مسيرتها المهنية الناجحة في الكتابة. إن قدرة ماري على البحث وتقديم النتائج بتنسيق سهل الفهم والتفاعل جعلها محبوبًا لدى القراء في جميع أنحاء العالم. عندما لا تكتب ، تستمتع ماري بالسفر والقراءة وقضاء الوقت مع العائلة والأصدقاء.