तो मैं निम्नलिखित परीक्षण किया? मुझे पता है कि मैं पते की तुलना कर रहा हूं। यह तारों की तुलना करने के लिए नहीं है, लेकिन क्या समान स्ट्रिंग अक्षर एक स्मृति स्थान में संग्रहीत हैंस्ट्रिंग अक्षर जिसमें ' 0' है - वे समान क्यों नहीं हैं?</p> <pre><code>char* a = "test"; char* b = "test"; char* c = "test0"; </code></pre> <p>और अब सवाल:</p> <p>1) क्या यह है कि <code>a==b</code> गारंटी
2) a==c
क्यों नहीं है? क्या संकलक यह देखने में सक्षम नहीं होना चाहिए कि वे एक ही स्ट्रिंग का जिक्र कर रहे हैं?
3) c
के अंत में जोड़ा गया है, भले ही इसमें पहले से ही एक है?
मैं इसके लिए 3 अलग-अलग प्रश्न पूछना नहीं चाहता था क्योंकि वे किसी तरह से संबंधित, खेद है।
नोट: टैग सही है, मुझे सी ++ में रूचि है। (हालांकि कृपया निर्दिष्ट करें कि सी के लिए व्यवहार अलग है या नहीं)
'char const * a = ...' होना चाहिए। –
ए और बी का एक ही मान है, लेकिन इसका मतलब यह नहीं है कि वे _same_ स्ट्रिंग हैं। –
@HunterMcMillen - असल में यह वही है जो इसका मतलब होगा। –