"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C++ में पॉइंटर और इंटीजर के बीच तुलना त्रुटि को कैसे ठीक करें

C++ में पॉइंटर और इंटीजर के बीच तुलना त्रुटि को कैसे ठीक करें

2024-11-18 को प्रकाशित
ब्राउज़ करें:948

How to Fix Comparison Error Between Pointer and Integer in C

सी में तुलना त्रुटि: सूचक बनाम पूर्णांक

बजर्न स्ट्रॉस्ट्रुप की सी पुस्तक, तीसरे संस्करण, डेवलपर्स से एक सरल फ़ंक्शन संकलित करने का प्रयास करते समय संकलन समय त्रुटि का सामना करना पड़ सकता है:

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") से की जाती है। चूँकि उत्तर एक वर्ण चर है, इसलिए इसकी तुलना एक वर्ण स्थिरांक से की जानी चाहिए।

Solution

इस समस्या के दो समाधान हैं:

  1. एक स्ट्रिंग वेरिएबल का उपयोग करें:
    उत्तर को चार के बजाय एक स्ट्रिंग प्रकार के रूप में घोषित करें। यह आपको उत्तर की सही ढंग से एक स्ट्रिंग अक्षरशः तुलना करने की अनुमति देगा:

    string answer;
    if (answer == "y") return true;
  2. यदि (उत्तर == 'y') सत्य लौटाता है; // वर्ण स्थिरांक के लिए एकल उद्धरण नोट करें


    दोनों विधियां यह सुनिश्चित करके त्रुटि को प्रभावी ढंग से हल करती हैं कि तुलना संगत प्रकारों के बीच है।

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729663819 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3