【发布时间】:2013-03-20 04:37:52
【问题描述】:
我有一个或多或少的代码:
bar(const char**)
{
// stuff
}
foo(char** arr)
{
bar(arr);
}
编译器通知我我正在执行invalid conversion from ‘char**’ to ‘const char**’。虽然我知道这意味着什么,但我不明白为什么不允许这样做。在需要const char* 的地方传递char* 是完全可以的。
【问题讨论】:
-
函数签名中没有多余的
*吗? -
你的意思是...
bar(const char**)? -
我的意思是,在
bar()的函数签名中有const char***,有3 个星号。你不是说要两个吗? -
这与
const无关,这是 Andy Prowl 建议的额外的*。