"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إصلاح خطأ المقارنة بين المؤشر والعدد الصحيح في لغة C++

كيفية إصلاح خطأ المقارنة بين المؤشر والعدد الصحيح في لغة C++

تم النشر بتاريخ 2024-11-18
تصفح:233

How to Fix Comparison Error Between Pointer and Integer in C

خطأ في المقارنة في C: المؤشر مقابل عدد صحيح

عند محاولة تجميع وظيفة بسيطة من كتاب C لـ Bjarne Stroustrup، الطبعة الثالثة، المطورين قد يواجه خطأ وقت الترجمة:

error: ISO C   forbids comparison between pointer and integer

تنشأ هذه المشكلة عند مقارنة المؤشر بعدد صحيح. في الكود المقدم:

#include 
#include 
using namespace std;
bool accept()
{
    cout > answer;
    if (answer == "y") return true;
    return false;
}

يظهر الخطأ في عبارة if حيث تتم مقارنة الإجابة بسلسلة حرفية ("y"). نظرًا لأن الإجابة عبارة عن متغير حرف، فيجب مقارنتها بحرف ثابت.

الحل

هناك حلان لهذه المشكلة:

  1. استخدم متغير السلسلة:
    قم بتعريف الإجابة كنوع سلسلة بدلاً من الحرف. سيسمح لك هذا بمقارنة الإجابة بسلسلة حرفية بشكل صحيح:

    string answer;
    if (answer == "y") return true;
  2. استخدم ثابت الحرف:بدلاً من مقارنة الإجابة بسلسلة حرفية، استخدم ثابت الحرف محاطة بعلامات اقتباس مفردة:

    if (answer == 'y') return true; // Note single quotes for character constant
  3. تعمل كلتا الطريقتين على حل الخطأ بشكل فعال من خلال التأكد من أن المقارنة بين الأنواع المتوافقة.
بيان الافراج أعيد طبع هذه المقالة على: 1729663819 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3