1. परिचय
C भाषा मा “0” को विभिन्न अर्थहरू छन्, र विभिन्न परिस्थितिहरूमा विभिन्न भूमिका निर्वाह गर्छ।
यस लेखमा, संख्यात्मक “0”, पोइन्टरलाई जनाउने “NULL”, स्ट्रिङको अन्त्यलाई जनाउने “\0” बारे क्रमशः व्याख्या गर्नेछौं।
यीलाई सही रूपमा बुझ्नु बगहरू टार्न र मेमोरी व्यवस्थापन सुधार्न सिधै सम्बन्धित छ, त्यसैले C भाषा सिक्दा अत्यन्त महत्वपूर्ण छ।
2. 「0」 र 「NULL」 को भिन्नता
संख्यात्मक 「0」 शून्यलाई पूर्णांकको रूपमा दर्शाउँछ, तर पोइन्टरको 「NULL」 सँग भिन्न अर्थ हुन्छ।
2.1 संख्यात्मक रूपमा 「0」
「0」 केवल संख्यात्मक शून्यको रूपमा व्यवहार गरिन्छ, र मेमोरीभित्र विशेष संख्यालाई मात्र देखाउँछ।
यो 「0」 प्रयोग गरेर, सर्त शाखा र लूपको समाप्ति सर्त निर्धारण गर्न सकिन्छ।
उदाहरणका लागि, if(x == 0)
जस्तै लेखेर, चल x
शून्य हो कि छैन जाँच गर्न सकिन्छ।
2.2 पोइन्टरको रूपमा 「NULL」
अर्कोतर्फ, 「NULL」 पोइन्टर भेरिएबलमा प्रयोग हुने विशेष मान हो।
C भाषामा, 「NULL」 प्रयोग गरेर अवैध मेमोरी सन्दर्भलाई रोक्ने भूमिका हुन्छ, र सामान्यतया “(void*)0” को रूपमा परिभाषित गरिन्छ।
उदाहरणका लागि, int *ptr = NULL;
भन्ने कोडले, पोइन्टर ptr
ले केही पनि संकेत नगरेको (खाली) देखाउँछ।
यसरी, NULL र संख्यात्मक 0 विभिन्न प्रयोजनका लागि प्रयोग गरिन्छ, त्यसैले भ्रम
3. नल चर (\0) को बारेमा
स्ट्रिङको अन्त्य दर्शाउने विशेष अक्षर \”\\0\” (नल अक्षर) हो। C भाषा जसमा स्ट्रिङलाई एरेको रूपमा ह्यान्डल गरिन्छ, स्ट्रिङको अन्त्य स्पष्ट गर्न एरेको अन्त्यमा \”\\0\” थपिन्छ।
3.1 नल चर (\0) र स्ट्रिङ लिटरल
यदि स्ट्रिङ लिटरललाई एरेको रूपमा ह्यान्डल गरिन्छ भने, C भाषाको कम्पाइलर स्वचालित रूपमा अन्त्य अक्षर \”\\0\” थप्दछ।
उदाहरणका लागि、char str[] = "Hello";
भने, एरेstr
को अन्त्यमा \”\\0\” थपिन्छ, रH-e-l-l-o-\0
भन्ने ६ अक्षरको एरेको रूपमा मेमोरीमा साँचिन्छ।
3.2 स्ट्रिङ सञ्चालन फङ्क्सनहरू र नल चर (\0) को भूमिका
C भाषामा स्ट्रिङलाई ह्यान्डल गर्न धेरै फङ्सनहरू छन्। यी फङ्सनहरू \”\\0\” लाई आधार मानेर काम गर्छन्, त्यसैले अन्त्य सही रूपमा निर्दिष्ट नभएमा अनपेक्षित व्यवहार वा मेमोरी त्रुटि उत्पन्न हुन सक्छ।
उदाहरणका लागि、strlen
फङ्सनले \”\\0\” सम्मको अक्षर संख्या गणना गरी स्ट्रिङको लम्बाइ फिर्ता गर्छ।
4. 「0」 प्रयोग गरेर प्रोग्रामिङ प्रविधिहरू
C भाषा मा 「0」 को उपयोग गर्ने विभिन्न प्रविधिहरू छन्। तल एरेको आरम्भिकरण र सर्त शाखामा प्रयोगका केही उदाहरणहरू प्रस्तुत गरिएका छन्।
4.1 एरेको आरम्भिकरण
एरेका सबै तत्वहरूलाई शून्यमा आरम्भिकरण गर्न, memset
प्रयोग गर्नुहोस्।
उदाहरणका लागि, int arr[10]; memset(arr, 0, sizeof(arr));
जस्तै लेखेर, एरे arr
का सबै तत्वहरू शून्य हुन्छन्।
4.2 सर्त शाखामा 「0」 को प्रयोग
「0」 सर्त शाखामा पनि धेरै प्रयोग हुन्छ। उदाहरणका लागि, if (value)
लेखेर, value
「0」 नभएको बेला मात्र सर्त साँचो हुन्छ।
यो सरल अभिव्यक्तिले प्रोग्रामको पढ्न सजिलोपन र कार्यक्षमता सुधार्छ।

5. सामान्य गल्तीहरू र ध्यान दिनुपर्ने बुँदाहरू
C भाषा मा, 「0」 र 「NULL」、「\0」 लाई भ्रमित गर्ने प्रवृत्ति हुन्छ, त्यसैले प्रत्येकको प्रयोग फरक पार्नु महत्त्वपूर्ण छ। साथै, 0 द्वारा विभाजन गर्दा हुने त्रुटिहरूलाई पनि विचार गर्न आवश्यक छ।
5.1 NULL र 「5.2 0 द्वारा विभाजन त्रुटि रोकथाम
」 लाई भ्रम नपार्नुहोस्
NULL पोइन्टरको अवैध मान हो, र स्ट्रिङको अन्त्य देखाउने 「\0」 सँग फरक हुन्छ।
NULL क्यारेक्टर(「\0」) स्ट्रिङको अन्त्य देखाउन प्रयोग गरिन्छ, र स्ट्रिङ बाहेक अन्यत्र प्रयोग हुँदैन।
6. सारांश
0 द्वारा विभाजनले अपरिभाषित व्यवहार उत्पन्न गर्छ, जसले प्रोग्राम क्र्यास हुने कारण बनाउँछ।
विभाजन गर्नु अघि, हर (denominator) 0 छैन भनि जाँच गर्नु महत्त्वपूर्ण छ।
6. सारांश
C भाषा मा “0” को प्रयोगलाई बुझ्नाले कोडको स्थिरता र प्रदर्शनसँग प्रत्यक्ष सम्बन्धित हुन्छ।
संख्या रूपमा “0”, प्वाइन्टरको अमान्य मान NULL, स्ट्रिङ अन्त्य दर्शाउने “\0” आदि, प्रत्येकको भिन्नता बुझेर उपयुक्त रूपमा प्रयोग गर्दा, विश्वसनीय प्रोग्राम बनाउन सकिन्छ।