इस सवाल का पहले से ही एक उत्तर है: < / P>
- 1 उत्तर
- 3 उत्तर
मैं c ++ में नया हूँ मैंने इस कार्यक्रम को लिखा है।
#include & lt; iostream & gt; नेमस्पेस एसटीडी का उपयोग करना; Int मुख्य (शून्य) {int x = 24; Char y = 'ए'; Char * pchar = & amp; y; Int * pint = & amp; x; Cout & lt; & lt; "pchar =" & lt; & lt; hex & lt; & lt; और pchar & lt; & lt; endl; Cout & lt; & lt; "pint =" & lt; & lt; hex & lt; & lt; & amp; पिंट & lt; & lt; endl; Cout & lt; & lt; endl; Cout & lt; & lt; "pchar =" & lt; hex & lt; & lt; pchar & lt; & lt; endl; Cout & lt; & lt; "pint =" & lt; & lt; hex & lt; & lt; पिंट & lt; & lt; endl; pchar = शून्य; पिंट = शून्य; getchar (); वापसी 0; }
और उसका परिणाम
क्या आप मुझे समझने में सहायता कर सकते हैं कि मैं जब आप एक संकेतक को प्रिंट करने के लिए जिसे आपको इसे जब आप चर & amp; ?
y
का > पाठ "itemprop =" text "> char *
का उपयोग करते हैं (जैसे कि आपके चर pchar
) का उपयोग किया जाता है, और इसे एक स्ट्रिंग के रूप में इलाज करते समय प्रिंट अक्षर जब तक यह स्ट्रिंग टर्मिनेटर वर्ण ( '\ 0'
) नहीं मिलती। दुर्भाग्य से इस मामले में pchar
केवल एक ही चरित्र के लिए अंक देता है, इसलिए आपके पास अपरिभाषित व्यवहार है, क्योंकि फ़ंक्शन आपके पास आवंटित स्मृति में वर्णों की तलाश में नहीं जाता है। void *
:
std :: cout & lt; & lt; "पचर =" & lt; & lt; Std :: hex & lt; & lt; Reinterpret_cast & lt; void * & gt; (पीचर) & lt; & lt; '\ N';
pchar
का पता मुद्रित करते हैं (जब आप & amp; pchar
प्रिंट करते हैं) तब काम करता है क्योंकि तब अभिव्यक्ति का प्रकार चार **
है, जिसके पास कोई सीधी अधिभार नहीं है, और इसके बजाय जेनेरिक पॉयंटर अधिभार (मामले 7 में) का उपयोग करता है।
Comments
Post a Comment