सी में, एक नल पॉइंटर और पॉइंटर के बीच क्या अंतर है जो 0 को इंगित करता है?सी में, क्या एक शून्य सूचक और एक सूचक के बीच कोई अंतर है जो 0 को इंगित करता है? यदि ऐसा है तो क्या?
सी में, क्या एक शून्य सूचक और एक सूचक के बीच कोई अंतर है जो 0 को इंगित करता है? यदि ऐसा है तो क्या?
उत्तर
आईएसओ/आईईसी 9899: मान 0 या लिखने के लिए शून्य * इस तरह के एक अभिव्यक्ति कलाकारों के साथ 6.3.2.3 Pointers
3 एक पूर्णांक निरंतर अभिव्यक्ति में TC2 राज्यों, एक अशक्त सूचक constant.55 कहा जाता है) एक अशक्त सूचक लगातार एक सूचक प्रकार, जिसके परिणामस्वरूप सूचक में बदल जाती है, तो एक अशक्त सूचक कहा जाता है, किसी भी वस्तु या कार्य करने के लिए एक सूचक को असमान तुलना करने के लिए गारंटी है
मैक्रो शून्य फैलता एक कार्यान्वयन-परिभाषित शून्य सूचक स्थिर करने के लिए।
कोई भी दो शून्य पॉइंटर्स बराबर की तुलना करेंगे।
हां वहाँ है। मानक निर्देश देता है कि NULL
हमेशा अमान्य स्मृति को इंगित करता है। लेकिन यह नहीं बताता है कि सूचक का पूर्णांक प्रतिनिधित्व 0 होना चाहिए। मैंने कभी भी कार्यान्वयन नहीं किया है जिसके लिए NULL
0 से अधिक था, लेकिन यह मानक द्वारा अनिवार्य नहीं है।
ध्यान दें कि एक सूचक के लिए शाब्दिक 0
असाइन करने का अर्थ यह नहीं है कि पॉइंटर 0 के पूर्णांक प्रतिनिधित्व को मानता है। इसका मतलब है कि विशेष शून्य सूचक मान सूचक चर को आवंटित किया जाता है।
एक सूचक संदर्भ में शाब्दिक 0
का मूल्यांकन NULL
के समान है। NULL
पॉइंटर का प्रतिनिधित्व करने के लिए संकलक का उपयोग करने वाला कुछ भी पैटर्न छिपा हुआ है।
पुराने comp.lang.c FAQ में शून्य सूचक पर एक बड़ा अनुभाग है और यह पढ़ने योग्य है।
विचार है कि एक NULL
सूचक किसी तरह एक स्मृति क्षेत्र है कि अवैध है का प्रतिनिधित्व करना चाहिए है।
इसलिए जब निम्न मेमोरी सेगमेंट में ओएस कोड मैप किया गया है, तो 0 का मान उपयोग किया गया है (नल पॉइंटर का प्रतिनिधित्व करने के लिए) क्योंकि स्मृति में यह क्षेत्र उपयोगकर्ता के प्रोग्राम से संबंधित नहीं है लेकिन ओएस कोड में मैप किया गया है।
- 1. शून्य सूचक और शून्य सूचक के बीच क्या अंतर है?
- 2. क्या कोई सूचक एलएसबी या एमएसबी को इंगित करता है?
- 3. एक शून्य सूचक और एक पूर्ण सूचक के बीच क्या अंतर है?
- 4. सी ++ में शून्य सूचक क्या है?
- 5. प्रतिनिधि उदाहरण और विधि सूचक के बीच क्या अंतर है?
- 6. सी ++ में एक संकेतक नहीं है जो एक सूचक है?
- 7. यदि आकार 0 है तो यादृच्छिक() को शून्य सूचक के साथ बुलाया जा सकता है?
- 8. क्या सी में सूचक घोषणाओं के लिए कोई सम्मेलन है?
- 9. एक सूचक प्रारंभ करने के लिए क्या करता है?
- 10. (char) 0 और '\ 0' के बीच क्या अंतर है? सी
- 11. एक लंबा सूचक क्या है?
- 12. शून्य * और शून्य ** के बीच क्या अंतर है?
- 13. बूस्ट: यदि यह सूचक है तो एक टेम्पलेट तर्क
- 14. "शून्य सूचक असाइनमेंट त्रुटि" क्या है?
- 15. सिंथेटिक सूचक क्या है?
- 16. क्या यह एक शून्य शून्य * सूचक को हटाने के लिए अपरिभाषित व्यवहार है?
- 17. एक 'गठबंधन सूचक' वास्तव में क्या है?
- 18. MySQL: क्या एक 'अद्वितीय' कॉलम फ़ील्ड इंडेक्स को इंगित करता है, और यदि ऐसा है, तो क्यों?
- 19. एक शून्य सूचक को मुक्त करना
- 20. क्या "इस" सूचक का उपयोग करने और इसका उपयोग नहीं करने के बीच कोई अंतर है?
- 21. यदि मैं आकार 0 के लिए सरणी प्रारंभ करता हूं तो क्या होता है?
- 22. underscore.js - क्या कोई ऐसा फ़ंक्शन है जो दो सरणी के अंतर को एक सरणी बनाता है?
- 23. क्या BigDecimal ("0") और BigDecimal.ZERO के बीच कोई अंतर है?
- 24. कॉन्स के बीच अंतर। सूचक और संदर्भ?
- 25. सूचक का आकार क्या है?
- 26. सी ++ में न्यूल और जावा में शून्य के बीच क्या अंतर है?
- 27. स्थिर इनलाइन शून्य और शून्य के बीच क्या अंतर है?
- 28. उद्देश्य-सी: न्यूल, शून्य और @ "" के बीच क्या अंतर है?
- 29. क्या जीसीसी एक ऐसा फ़ंक्शन इनलाइन करेगा जो सूचक लेता है?
- 30. यदि प्रकार एक टेम्पलेट समारोह में एक सूचक है
प्रासंगिक: http://c-faq.com/null/machexamp.html – nos
भी ध्यान रखें कि 'पूर्णांक * ptr = 0;' हमेशा एक विशेष शासन के लिए एक नल पॉइंटर धन्यवाद में परिणाम है, क्योंकि '0' एक है तथाकथित "शून्य सूचक स्थिर" कहा जाता है। यह तब भी होता है जब आप कुछ असाधारण कार्यान्वयन पर हों, जहां एक शून्य सूचक 0 से अलग है। हालांकि, 'int i = 0; int * ptr = (int *) i; 'जरूरी नहीं है कि नल पॉइंटर में न हो। तो आप आमतौर पर एक संदर्भ में छोड़कर "एक सूचक जो 0 पते को इंगित करता है" का सामना नहीं करेगा जहां यह एक शून्य सूचक है, लेकिन मानक इसे अनुमति देता है। –
@ डेविड, आपके दूसरे पैरा में आपका मतलब है "नहीं", है ना? और 'NULL' मानक की परिभाषा द्वारा हमेशा '0' मान होता है, जो कर्नेल में एक मान्य पता हो सकता है। इसलिए किसी को एक नल पॉइंटर के आंतरिक प्रतिनिधित्व से अधिक स्पष्ट रूप से 'NULL' को अलग करना चाहिए, जैसा कि आप कहते हैं कि कुछ अलग हो सकता है। –