签名的std::strtol表述如下:
long strtol(const char *str, char **str_end, int base);
我实际上期望第二个参数是类型const char**.是char**什么类型的解释?请注意,可以修改类型的变量const char**.你无法修改的是一个char* const *变量.
在昔日的日子里(在C90之前),C没有概念,const一切都使用平淡char*.
由于char*可以隐式转换为char const*更改大多数库函数的签名以支持const不是太大的问题.char**但是无法转换为a char const**,请参阅C++标准中的以下注释
由于C不支持重载,委员会不得不在破坏遗留代码或强迫每个人传入代码之间做出选择char**.两者都不理想,但看起来他们跟后者一样.