在其中一个 C++ 程序中,我看到了一个函数原型: int Classifier::command(int argc, const char*const* argv)
const char*const* argv
是什么意思?和 const char* argv[]
一样吗? const char** argv
是否也意味着相同?
原文由 vigs1990 发布,翻译遵循 CC BY-SA 4.0 许可协议
在其中一个 C++ 程序中,我看到了一个函数原型: int Classifier::command(int argc, const char*const* argv)
const char*const* argv
是什么意思?和 const char* argv[]
一样吗? const char** argv
是否也意味着相同?
原文由 vigs1990 发布,翻译遵循 CC BY-SA 4.0 许可协议
来自 C++ 超级常见问题解答:
从右到左阅读指针声明。
const X* p
means ”p
points to anX
that isconst
“: theX
object can’t be 通过p
更改。X* const p
means ”p
is aconst
pointer to anX
that isnon-const
“: you can’t更改指针p
本身,但您可以 通过p
更改X
对象。const X* const p
means “p is aconst
pointer to anX
that isconst
“: you can’t change the pointerp
本身,也不能通过p
更改X
对象。而且,哦,是的,我是否提到要从右到左阅读您的指针声明?
const char * const *
与 char const * const *
相同:一个(非 const)指针,指向一个 const 指针,指向一个 const 字符。
const char *
与 char const *
相同:指向 const char 的(非 const)指针。
const char * *
与 char const * *
相同:一个(非常量)指针,指向一个(非常量)指向常量字符的指针。
原文由 Samuel Harmer 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
不,它与
const char *argv[]
。const
禁止在特定的取消引用级别修改取消引用的值: