const和volatile通过C规范称为cv-qualifier.
说明者和限定词(cv-qualifier)之间是完全一致的?一个限定词是一个说明者吗?
是否有必要,限定词只有一个左值?
什么是cv-qualifier以外的限定词?
我以上的理解有什么意义吗?
解决方法
大多数没有意义.
指定者和限定词在C标准中定义.限定词只是说明符的组成部分.例如,声明中的类型说明符可以包括cv-qualifiers.我没有看到原因引用了关于这个话题的标准的一切.
Cv限定词不限于左值.类别的价值也可以是cv-qualified.可以对非类类型的rval进行限定,但它将不起作用,将被忽略.
使用在foo中的示例中显示的const限定词只是一种句法形式,这实际上意味着将const限定符应用于隐含foo方法的此参数:const A * this.即在这种情况下,确实有一个左派价值,但它是*这不是foo.
术语限定词也出现在合格名称的上下文中.名称像some_class :: some_member(或some_namespace :: some_name)称为限定名,而some_class :: part是限定符.
这个想法,如果某物是一个左值,那么你可以修改它是完全不正确的.有可修改的左值和不可修改的左值.声明为const int i = 5的对象是一个左值,但不能修改它.普通函数也是C中的左值,但不能修改函数.