vig*_*990 12 c++ pointers function-parameter function-prototypes
在其中一个C++程序中,我看到了一个函数原型: int Classifier::command(int argc, const char*const* argv)
什么const char*const* argv意思?它是一样的const char* argv[]吗?是否const char** argv也意味着相同?
Sam*_*mer 10
从右到左阅读指针声明。
const X* p手段“p指向一个X即const”:该X对象不能被改变通过p。X* const p手段“p是const指向一个X是non-const”:你不能改变指针p本身,但你可以改变X物体通过p。const X* const p手段“p是一个const指针,指向一个X即const”:不能改变指针p本身,也不可以改变X对象通过p。而且,哦,是的,我有没有提到从右到左阅读您的指针声明?
const char * const *等同于char const * const *:一个(非常量)指针,一个指向一个常量字符的常量指针。
const char *等同于char const *:一个(非常量)指向常量字符的指针。
const char * *等同于char const * *:一个(非常量)指针到一个(非常量)指针到一个常量字符。
不,它不一样const char *argv[].所述const禁止在解除引用的特定水平解除引用值的修改:
**argv = x; // not allowed because of the first const
*argv = y; // not allowed because of the second const
argv = z; // allowed because no const appears right next to the argv identifier
Run Code Online (Sandbox Code Playgroud)