if (c)
सी ++ में if (c == 0)
के समान है?सी ++ में कथन का मूल्यांकन कैसे किया जाता है?
उत्तर
नहीं, if (c)
if (c != 0)
जैसा ही है। और if (!c)
if (c == 0)
जैसा ही है।
मानना कोई अजीब ओवरलोडिंग नहीं ले रहा है जगह, जो अक्सर सी ++ में जवाब का हिस्सा है। –
संभोग, यदि ऑपरेटरों == या! = ओवरलोड हो गए हैं, कुछ भी हो सकता है, यह आपके लिए राष्ट्रीय गान भी खेलना शुरू कर सकता है ... ;-) – Jesper
इन दिनों में से एक मैं एक वर्ग बनाने जा रहा हूं जो ऑपरेटरों को अधिभारित करता है ध्वनि प्रभाव खेलने के लिए। जब भी कोई उन्हें सॉर्ट करना चाहता है तो यह भयानक होगा। – rlbond
इसे और अधिक की तरह if (c != 0)
बेशक, !=
ऑपरेटर अतिभारित किया जा सकता है, तो यह कहना है कि उन लोगों के बिल्कुल बराबर हैं पूरी तरह से सही नहीं है।
हां वे == 0
!= 0
में बदलते हैं, तो वे वही हैं।
उह, नहीं वे नहीं हैं। – Aistina
यदि कथन * परिभाषित * को शून्य के रूप में कुछ भी शून्य स्वीकार करने के लिए है। तो हाँ यह वही है। –
मैं इस पर पैक से तोड़ दूंगा ... "if (c)
" "if (((bool)c) == true)
" के सबसे नज़दीकी है। पूर्णांक प्रकारों के लिए, इसका अर्थ है "if (c != 0)
"। जैसा कि अन्य ने इंगित किया है, operator !=
ओवरलोडिंग कुछ अजीबता का कारण बन सकती है, लेकिन जब तक मैं गलत नहीं हूं तब तक "operator bool()
" ओवरलोड कर सकता है।
प्रश्न मूल रूप से केवल सी के साथ टैग किया गया था, इसलिए ऊपर दिए गए उत्तरों के बाद से सी –
में कोई बूल नहीं है यदि (static_cast
सी 99 में बूल है ... – rlbond
यह संख्यात्मक मानों के लिए केवल सत्य है।
#include <stdio.h>
class c_type
{
public:
operator bool()
{
return true;
}
};
int main()
{
c_type c;
if (c) printf("true");
if (!c) printf ("false");
}
तो ग एक सूचक या एक अंकीय मान है,
if(c)
के बराबर है: अगर ग वर्ग है, इस तरह के यहाँ में के रूप में एक ऑपरेटर अतिभारित जो रूपांतरण बूलियन करता है, होना चाहिए
if(c != 0)
तो ग एक बूलियन (प्रकार bool [केवल सी ++]), (संपादित करें: या ऑपरेटर bool() के अधिभार के साथ एक उपयोगकर्ता-निर्धारित प्रकार) है
if(c)
, तो ग और न ही एक सूचक या एक अंकीय मान न बूलियन नहीं है
if(c == true)
के बराबर है
if(c)
संकलन नहीं होंगे।
यह सी उपयोगकर्ता द्वारा परिभाषित प्रकार है जिसे केवल 'ऑपरेटर बूल()' को डी। शॉली और गैलेट्स दोनों के रूप में लागू किया जा सकता है और इसलिए यह ठीक से संकलित होगा। – Troubadour
सटीक, मैं इसे स्पष्टीकरण –
तो c
एक सूचक तो परीक्षण
if (c)
है काफी एक ही रूप में
if (c != 0)
उत्तरार्द्ध जबकि पूर्व 0
(शून्य) सूचक के खिलाफ c
की एक सीधी जांच है नहीं है वास्तव में यह जांचने के लिए एक निर्देश है कि c
मान्य वस्तु के लिए बिंदु है या नहीं। आम तौर पर कंपाइलर एक ही कोड का उत्पादन करते हैं।
संख्या में जोड़ता हूं, यह नहीं है ... दोनों का अर्थ सूचक के मामले में बिल्कुल समान है: यदि (c! = NULL) – Massa
संकलन और/या रनटाइम के लिए कोई तरीका नहीं है पता है कि कोई ऑब्जेक्ट सी या सी ++ में मान्य है या नहीं। आप लिख सकते हैं: "एक्स * सी = (एक्स *) 1;" फिर सी लगभग निश्चित रूप से किसी अमान्य वस्तु को इंगित करता है। और "अगर (सी)" सच होगा। –
@Andrew: मुझे संदेह है कि आप अपने बयान को उचित ठहरा सकते हैं कि यह जांचने का कोई तरीका नहीं है कि ऑब्जेक्ट मान्य है या नहीं। निश्चित रूप से इसे चलाने के लिए रन-टाइम कोड उत्पन्न करने के लिए संकलक द्वारा बहुत सारे प्रयासों की आवश्यकता होगी और यही कारण है कि संकलक नल पॉइंटर के खिलाफ एक ही कोड यानी परीक्षण को परेशान नहीं करते हैं। यही कारण है कि आपका उदाहरण सभी मौजूदा कंपाइलर्स (संभवतः) पर झूठा परिणाम उत्पन्न करने में विफल रहता है। – Troubadour
- 1. कैसे 'if (A && B)' कथन का मूल्यांकन किया जाता है?
- 2. पर्यावरण चर का मूल्यांकन कैसे किया जाता है?
- 3. printf कथन का व्याख्या कैसे किया जाता है?
- 4. स्ट्रीम के प्रमुख का मूल्यांकन कब किया जाता है?
- 5. जावा: संग्रह "अभिव्यक्ति" में कितनी बार मूल्यांकन अभिव्यक्ति का मूल्यांकन किया जाता है
- 6. स्थिति के बाद और हमेशा मूल्यांकन किया जाता है
- 7. ओरेकल में किसी क्वेरी में उपयोगकर्ता परिभाषित फ़ंक्शंस का मूल्यांकन कब किया जाता है?
- 8. आकार का ऑपरेटर सी ++ में कैसे कार्यान्वित किया जाता है?
- 9. एक प्रारंभ ब्लॉक का मूल्य निर्धारित कैसे किया जाता है?
- 10. क्या सी @+ में '@' प्रयोग किया जाता है?
- 11. डेल्फी में, किसी विधि में पारित होने पर पैरामीटर का मूल्यांकन किया जाता है?
- 12. क्या यह सी/सी ++ अगर() कथन कभी भी सत्य का मूल्यांकन कर सकता है?
- 13. लेआउट का उपयोग कैसे किया जाता है?
- 14. ImmutableObjectAttribute का उपयोग कैसे किया जाता है?
- 15. पाइथन में परिभाषा समय पर डिफ़ॉल्ट तर्कों का मूल्यांकन क्यों किया जाता है?
- 16. .NET में, जीआईटी समय के बजाय संकलन समय पर स्थिरांक का मूल्यांकन क्यों किया जाता है?
- 17. एक 'if' कथन में एकाधिक चर का मूल्यांकन करें?
- 18. कैसे ConcurrentDictionary का उपयोग किया जाता है और इसे क्रमबद्ध कैसे किया जाता है?
- 19. सी ++ कोड सी ++/सीएलआई से कॉल किया जाता है जब marshalling प्रदर्शन किया जाता है?
- 20. एक लूप में, अंतराल में किसी भी परिचालन को प्रत्येक पुनरावृत्ति में मूल्यांकन किया जाता है?
- 21. BEGIN ब्लॉक में पहले 'उपयोग' कथन का निष्पादन क्यों किया जाता है?
- 22. प्रोसेस आकार कैसे निर्धारित किया जाता है?
- 23. वास्तव में XQUERY का उपयोग कैसे किया जाता है?
- 24. वेब.कॉन्फिग फ़ाइल में enums का प्रतिनिधित्व कैसे किया जाता है?
- 25. ऑर्डर करें कि निर्भरता प्रॉपर्टीज बाइंडिंग का मूल्यांकन किया जाता है?
- 26. "कॉन्स्ट" कैसे कार्यान्वित किया जाता है?
- 27. सी # अस्पष्टता त्रुटि जब गुणों का उपयोग किया जाता है
- 28. सी # कथन
- 29. ... कथन में उद्देश्य-सी
- 30. क्लोजर में 'निरंतर' का उपयोग कब करें, इसके तर्कों का मूल्यांकन कब और कब किया जाता है?
ध्यान रखें कि 0 हमेशा एक ही चीज़ का मतलब नहीं है। यह शून्य सूचक स्थिर या पूर्णांक शून्य हो सकता है। –
क्या आपका मतलब यह नहीं है "क्या अगर (सी) सी ++ में (सी! = 0) जैसा ही है?" ? –
एक विशेष प्रकार के चर सी है? –