Const char转换错误

时间:2010-06-21 09:09:34

标签: c++ cstring

我收到了gcc的以下错误。

invalid conversion from ‘char**’ to ‘const char**’

使用此代码。

void foo( const int &argc, const char **argv );

int main( int argc, char *argv[] )
{
   foo( argc, argv );                                                            
}

为什么会这样?

1 个答案:

答案 0 :(得分:8)

在函数参数列表中使用时,char *argv[]声明等同于char **argv声明。因此,当您将argv传递给foo时,您实际上是在尝试将argvchar **类型转换为const char **类型。这是非法的。阅读常见问题解答http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.17,了解其非法行为。