] हालांकि, पर्दे के पीछे, इन मूल्यों को अक्सर पूर्णांक के रूप में संग्रहीत किया जाता है। यह सवाल उठाता है: जब एक बूल को एक इंट में परिवर्तित किया जाता है, तो क्या परिणाम 0 या 1 होने की गारंटी है? सी स्टैंडर्ड (.54.5/4) के अनुसार, "टाइप बूल के एक rvalue को टाइप इंट के एक rvalue में परिवर्तित किया जा सकता है, जिसमें झूठे शून्य हो जाते हैं और सही बन जाता है।" इसका मतलब यह है कि जब एक बूल को C में एक int में परिवर्तित किया जाता है, तो परिणाम हमेशा 0 या 1 होगा। C मानक (.36.3.1.2/1) के अनुसार, "जब किसी भी स्केलर मान को _bool में परिवर्तित किया जाता है, तो परिणाम 0 है यदि मान 0 के बराबर तुलना करता है; अन्यथा, परिणाम 1. है 1." इसका तात्पर्य यह है कि जब एक बूल (c में _bool के रूप में प्रतिनिधित्व किया जाता है) को एक int में परिवर्तित किया जाता है, तो परिणाम फिर से 0 या 1 होगा। बूल बी = ए; int c = 3 b; // 4
इस उदाहरण में, बूल वैरिएबल बी को int a (जो 2 है) के मान के लिए आरंभीकृत किया गया है, लेकिन चूंकि बूल मान 0 या 1 के रूप में संग्रहीत किए जाते हैं, b 1 हो जाता है। 1 हो जाता है। C में 3 परिणामों के बाद के जोड़ को 4 मान लिया जाता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3