सी में तुलना त्रुटि: सूचक बनाम पूर्णांक
बजर्न स्ट्रॉस्ट्रुप की सी पुस्तक, तीसरे संस्करण, डेवलपर्स से एक सरल फ़ंक्शन संकलित करने का प्रयास करते समय संकलन समय त्रुटि का सामना करना पड़ सकता है:
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
इस समस्या के दो समाधान हैं:
एक स्ट्रिंग वेरिएबल का उपयोग करें:
उत्तर को चार के बजाय एक स्ट्रिंग प्रकार के रूप में घोषित करें। यह आपको उत्तर की सही ढंग से एक स्ट्रिंग अक्षरशः तुलना करने की अनुमति देगा:
string answer;
if (answer == "y") return true;
दोनों विधियां यह सुनिश्चित करके त्रुटि को प्रभावी ढंग से हल करती हैं कि तुलना संगत प्रकारों के बीच है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3