小编SAN*_*IKA的帖子

将变量传递给具有常量参数的函数

我很困惑。我看到当代码是这样的

void fun(const char **p) { }
int main(int argc, char **argv)
{
   fun(argv);
   getchar();
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

它显示error: invalid conversion from 'char**' to 'const char**'

但是当代码像这样

void test(const char *p) { }
int main()
{
    char *c = new char('a');
    test(c);
}
Run Code Online (Sandbox Code Playgroud)

然后就没有编译错误了。两个代码有什么区别?
为什么第二段代码可以将变量传递给常参数的函数?

c++ pointers const-correctness

6
推荐指数
1
解决办法
152
查看次数

标签 统计

c++ ×1

const-correctness ×1

pointers ×1