我很困惑。我看到当代码是这样的
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)
然后就没有编译错误了。两个代码有什么区别?
为什么第二段代码可以将变量传递给常参数的函数?