std::strtol
के हस्ताक्षर के रूप में तैयार किया जाता है इस प्रकार है:हस्ताक्षर :: strtol
long strtol(const char *str, char **str_end, int base);
मैं वास्तव में दूसरा पैरामीटर प्रकार const char**
के होने की उम्मीद। इसके बजाय कोई स्पष्टीकरण क्यों char**
है? ध्यान दें, const char**
प्रकार के चर को संशोधित करना संभव है। आप क्या संशोधित नहीं कर सकते हैं char* const *
चर है।
यह फ़ंक्शन 'str_end' पॉइंटर_ को बदलता है, यही कारण है कि इसे केवल 'char **' – ForceBru
होना चाहिए क्योंकि संभवतः सी में फ़ंक्शन घोषित किया गया है, और सी ++ संगत होना चाहता है। सी के रूप में इसे क्यों घोषित किया गया है, यह शायद पुराने कोड के साथ पिछड़ा संगतता के लिए है। सटीक कारण के लिए आपको मानक समिति से पूछना है। –
@ जोचिमपिलबोर्ग: इससे ज्यादा समझ नहीं आती है क्योंकि पहला पैरामीटर 'कॉन्स्ट' है। –