我正在尝试编写一个函数来解析命令行参数.这是函数声明:
void parse(int, char const **);
Run Code Online (Sandbox Code Playgroud)
为以防万一,我也尝试过(const char)**,const char **和cchar **使用typedef const char cchar.但是,如果我将一个char **函数传递给函数,所有这些(如预期的那样,因为它们应该都是相同的)会导致错误,如:
void main(int argc, char **argv) {
parse(argc, argv);
Run Code Online (Sandbox Code Playgroud)
我从GNU编译器获得的错误是error: invalid conversion from 'char**' to 'const char**'来自Clang的错误candidate function not viable: no known conversion from 'char **' to 'const char **' for 2nd argument.
我已经看到这样的解决方案被建议为声明一个指向char(const char * const *)的const指针的指针,但我不希望任何指针都是const因为我希望能够修改指针,所以我可以迭代一个参数使用for(; **argv; ++*argv).如何声明"指向const char的非const指针的非const指针"?