क्या मैंने NULLसूचक को प्रतिस्थापन के रूप में उपयोग करने की अनुमति दी है 0?
या ऐसा करने में कुछ गलत है?
जैसे उदहारण के लिए:
int i = NULL;
के लिए प्रतिस्थापन के रूप में:
int i = 0;
प्रयोग के रूप में मैंने निम्नलिखित कोड संकलित किया:
#include <stdio.h>
int main(void)
{
int i = NULL;
printf("%d",i);
return 0;
}
आउटपुट:
0
वास्तव में यह मुझे यह चेतावनी देता है, जो अपने आप ही पूरी तरह सही है:
warning: initialization makes integer from pointer without a cast [-Wint-conversion]
लेकिन परिणाम अभी भी बराबर है।
- क्या मैं इसके साथ "अपरिभाषित व्यवहार" में पार कर रहा हूं?
- क्या
NULLइस तरह से इस्तेमाल करना जायज़ है ? - क्या
NULLअंकगणितीय अभिव्यक्तियों में संख्यात्मक मान के रूप में उपयोग करने में कुछ गड़बड़ है ? - और इस मामले के लिए C ++ में परिणाम और व्यवहार क्या है?
मैं का जवाब पढ़ा है क्या शून्य के बीच अंतर है '0 \' और 0, क्या बीच अंतर के बारे NULL, \0और 0है, लेकिन मैं वहाँ से संक्षिप्त जानकारी नहीं मिली है, अगर यह प्रयोग करने का अधिकार काफी अनुमति है और यह भी NULLरूप में मान असाइनमेंट और अन्य अंकगणितीय कार्यों के साथ काम करने के लिए।