String Initialization Declaration in C -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 6 उत्तर
मेरे पास कुछ सवाल हैं सी में स्ट्रिंग आरंभीकरण और घोषणा।
मान लीजिए कि मैं एक स्ट्रिंग के '10 आकार का उपयोग करके
chars [10]; प्रश्न 1. क्या यह जरूरी है कि 'एस के सभी तत्वों को' \ 0 'पर आरंभीकृत किया जाए या क्या यह सिर्फ शुद्ध किस्मत है कि मैं' अन्य तत्वों को '\ 0 '?
प्रश्न 2. अगर मैं इसके बजाय malloc का उपयोग इस तरह की स्ट्रिंग सेटअप करने के लिए करता हूँ
char * s = malloc (10 * sizeof (char));
फिर यह आवश्यक है कि सभी तत्वों को '\ 0' में आरंभ किया जाएगा?
प्रश्न 3. इसके अलावा मुझे एक '\ 0' जोड़ना होगा स्ट्रिंग घोषित करना या नहीं?
char s [10] = "abc";
या यह होना चाहिए
char s [10] = "abc \ 0";
नोट: यदि संभव हो, कृपया केविन द्वारा दूसरे उत्तर पर एक नज़र डालें।
-
नहीं" ??? सामान्य रूप में। कुछ संदर्भों में हाँ, यद्यपि। विशेष रूप से, यदि वेरिएबल एक स्थानीय वैरिएबल है और
static नहीं है, तो यह बिल्कुल आरंभ नहीं किया गया है यदि वेरिएबल स्थानीय और
स्थिर है, या यदि चर फ़ाइल गुंजाइश है और
स्थिर है, या यदि वह वैश्विक है, तो यह सभी बाइट्स शून्य पर आरंभ किया जाएगा।
नहीं शून्य कोड को वापस करने के लिए
malloc () गारंटी नहीं है यदि आपको इसकी आवश्यकता है, तो इसके बजाय
calloc () का उपयोग करें।
ये टिप्पणियां किसी भी प्रकार पर लागू होती हैं।
char s0 [10]; // सभी बाइट्स शून्य स्थिर स्थिरांक एस 1 [10]; // सभी बाइट शून्य शून्य शून्य से (शून्य) {स्थिर अक्षर एस 2 [10]; // सभी बाइट्स शून्य वर्ण एस 3 प्रारंभ करें [10]; // सभी बाइट्स शून्य वर्णों के लिए प्रारंभ नहीं किया गया है * s4 = malloc (10); // सभी बाइट्स शून्य वर्णों के लिए प्रारंभ नहीं किया गया है * s5 = calloc (10, 1); // सभी बाइट्स शून्य प्रारंभ करें ?? | | s0 का उपयोग करके | एस 5 ए |? |}
इसका उपयोग करने के लिए पर्याप्त है:
चार सी 6 [10] = "एबीसी"; // 3 बाइट्स गैर-शून्य प्लस 7 बाइट्स शून्य
यह लिखने से एक ही परिणाम प्राप्त होगा क्योंकि सरणी का आकार निर्दिष्ट है:
char s7 [10] = "एबीसी \ 0"; // 3 बाइट्स गैर-शून्य प्लस 7 बाइट्स शून्य
इन्हें लिखना विभिन्न आकारों के दो सरणियां देता है:
char s8 [] = "abc"; // आकार (s8) == 4 एक ???? 1 नल बाइट चार s9 [] = "abc \ 0"; // आकार (एस 9) == 5 एक ???? 2 नल बाइट
सी स्वचालित रूप से एक अनुक्रमित बातिल जोड़ता है।
-
Comments
Post a Comment