सी स्ट्रिंग्स को निरस्त कर दिया गया है। उस स्ट्रिंग के अंत में एक शून्य बाइट है।
'B' 'i' 'l' 'l' '\0'
0x42 0x69 0x6c 0x6c 0x00
सी मानक से
, धारा 6.4.5 स्ट्रिंग शाब्दिक, पैरा: 7:
अनुवाद चरण 7, एक बाइट या के कोड में ASCII मान लिया जाये, "Bill"
स्मृति में इस तरह दिखता है मान शून्य प्रत्येक मल्टीबाइट वर्ण अनुक्रम में जोड़ा जाता है जो एक स्ट्रिंग अक्षर या शाब्दिक के परिणामस्वरूप होता है।
आप लंबाई के लिए 4
का एक जवाब प्राप्त करना चाहते हैं, तो आप बल्कि sizeof
से strlen("Bill")
उपयोग करना चाहिए।
यदि आप वास्तव में शून्य टर्मिनेटर नहीं चाहते हैं, तो यह भी संभव है, हालांकि शायद बीमार सलाह दी गई है। इस परिभाषा:
char bill[4] = "Bill";
एक 4-बाइट सरणी bill
सिर्फ पात्रों युक्त निकलेगा 'B'
, 'i'
, 'l'
, और 'l'
, कोई अशक्त-टर्मिनेटर के साथ।
स्रोत
2013-06-03 21:08:56
@ H2CO3 है - मैं सहमत - इस सरल सी प्रोग्रामिंग कि आम तौर पर सी (या सी पर एक उचित प्रोग्रामिंग पुस्तक के अध्याय के पहले भीतर कवर किया जाता है ++) –
ऐसा कोई कारण नहीं है कि इस प्रश्न का उपयोग एक अच्छा कैननिकल उत्तर लिखने के लिए और आशा है कि इंटरनेट को थोड़ा सा सुधारें। –
@EdHeal शायद बंद करने का वोट आपके लिए एक अच्छा संकेत होगा;) मैं पूरी तरह से सहमत हूं, यह प्रश्न अक्सर पूछे जाने वाले प्रश्नों में "कोई शोध प्रयास नहीं दिखाता" शब्द बहुत अच्छी तरह फिट बैठता है। –