首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >签署std::strtol

签署std::strtol
EN

Stack Overflow用户
提问于 2015-12-17 06:32:50
回答 1查看 188关注 0票数 9

std::strtol的签字方式如下:

long strtol(const char *str, char **str_end, int base);

实际上,我希望第二个参数是const char**类型的。对于为什么它是char**类型的,有什么解释吗?注意,可以修改const char**类型的变量。您不能修改的是一个char* const *变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-17 06:58:58

在过去(C90之前),C没有const的概念,一切都使用普通的char*

由于char*可以隐式转换为char const*,因此更改大多数库函数的签名以支持const并不是什么大问题。然而,char**不能转换为char const**,请参阅C++标准中的以下说明以了解原因

由于C不支持重载,委员会不得不在破坏遗留代码和强制每个人传递char**之间做出选择。这两种方法都不是理想的,但看起来它们都和后者一样。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34328046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档