我用gcc收到以下错误.
invalid conversion from ‘char**’ to ‘const char**’
Run Code Online (Sandbox Code Playgroud)
有了这段代码.
void foo( const int &argc, const char **argv );
int main( int argc, char *argv[] )
{
foo( argc, argv );
}
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
在函数参数列表中使用时,char *argv[]声明等同于char **argv声明.因此,当您传递argv给foo您时,实际上是在尝试argv从char **类型转换 为const char **类型.这是非法的.阅读常见问题解答http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.17,了解其为何违法.
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |