2

我收到以下 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 );                                                            
}

为什么是这样?

4

1 回答 1

8

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

于 2010-06-21T09:16:33.993 回答