C ++ के शुरुआती दिनों में जब इसे C के ऊपर से बोल्ट किया गया था, तो आप NULL का उपयोग नहीं कर सकते थे क्योंकि इसे परिभाषित किया गया था (void*)0
। आप NULL को इसके अलावा किसी भी पॉइंटर को असाइन नहीं कर सकते हैं void*
, जिससे यह बेकार हो गया है। उन दिनों में, यह स्वीकार किया गया था कि आपने 0
शून्य बिंदुओं के लिए (शून्य) का उपयोग किया था ।
आज तक, मैंने शून्य को एक शून्य सूचक के रूप में उपयोग करना जारी रखा है, लेकिन मेरे आसपास के लोग उपयोग करने पर जोर देते हैं NULL
। मुझे व्यक्तिगत रूप से NULL
मौजूदा मूल्य के लिए एक नाम ( ) देने का कोई लाभ नहीं दिखता है - और क्योंकि मैं भी बिंदुओं को सत्य मान के रूप में परखना चाहता हूं:
if (p && !q)
do_something();
तब शून्य का उपयोग करना अधिक समझ में आता है (जैसा कि यदि आप उपयोग करते हैं NULL
, तो आप तार्किक रूप से उपयोग नहीं कर सकते हैं p && !q
- आपको स्पष्ट रूप से तुलना करने की आवश्यकता है NULL
, जब तक आप यह नहीं मान लेते हैं NULL
कि किस स्थिति में उपयोग करें NULL
)।
क्या NULL (या इसके विपरीत) पर शून्य पसंद करने का कोई उद्देश्यपूर्ण कारण है, या यह सब सिर्फ व्यक्तिगत पसंद है?
संपादित करें: मुझे जोड़ना चाहिए (और मूल रूप से कहने का मतलब है) कि RAII और अपवादों के साथ, मैं शायद ही कभी शून्य / पूर्ण बिंदुओं का उपयोग करता हूं, लेकिन कभी-कभी आपको उनकी आवश्यकता होती है।