小编Dea*_*tle的帖子

如何在C++中声明指向常量的指针?

我正在尝试编写一个函数来解析命令行参数.这是函数声明:

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指针"?

c++ pointers

3
推荐指数
2
解决办法
146
查看次数

标签 统计

c++ ×1

pointers ×1