我尝试了以下这行代码:
static const const char* values[];
但我在VC++上收到以下警告:警告C4114:
同一类型限定符使用超过一次。
正确的声明是什么?目标是创建一个不可变的c字符串数组。
static const const char* values[];
但我在VC++上收到以下警告:警告C4114:
同一类型限定符使用超过一次。
正确的声明是什么?目标是创建一个不可变的c字符串数组。
const
:const
总是与其左侧的“项”相关联。唯一的例外是,当const
是表达式中的第一个词时,它与其右侧的项目有关。因此,为了非常准确,应将字符串定义为static char const * const values[]
,可以从右向左阅读:values
是一个指向常量字符的常量指针数组,并且所有这些都是静态的。 - AquilaRapaxtypedef const char* CPtr; const CPtr var;
并不意味着它可能看起来的那样,而typedef char const* CPtr; CPtr const var;
则更加清晰明了。 - James Kanze[ ]
的优先级高于*
,而且由于*
是从右边添加的,所以const
也是如此。不用担心,我在回答你九年前的问题。 - VimNing