क्या मैंने 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
रूप में मान असाइनमेंट और अन्य अंकगणितीय कार्यों के साथ काम करने के लिए।