C++ 这种类型到底是什么?

C++ 这种类型到底是什么?,c++,C++,可能重复: 有人能给我解释一下这种类型吗 char const * const blah; 我本以为它是这样写的:constchar*。const post类型是什么意思?e、 g.int const foo 然后,第一条语句是什么意思?指向常量字符的常量指针。您不能更改它指向的地址,也不能更改它末尾的字符 char const * const ptr = "Hello"; ptr是指向常量字符的常量指针。这意味着无论是ptr还是它指向的数据都不能修改。因为指针本身是常量类型,所以需要初始

可能重复:

有人能给我解释一下这种类型吗

char const * const blah;
我本以为它是这样写的:
constchar*
。const post类型是什么意思?e、 g.
int const foo


然后,第一条语句是什么意思?

指向常量字符的常量指针。您不能更改它指向的地址,也不能更改它末尾的字符

char const * const ptr = "Hello";
ptr
是指向常量字符的常量指针。这意味着无论是
ptr
还是它指向的数据都不能修改。因为指针本身是常量类型,所以需要初始化它,因为以后无法重新分配它

char const * const laterPtr; // Wrong.

分号在哪里?变量或函数或。。。名字?对不起,修好了。主要的问题是我的大脑完全崩溃了。没有任何任务,这种类型是没有用的。声明后不能更改常量
等等。我不明白为什么它不是常量int*const@SirYakalot:
int-foo
int-const-foo
相同。根据类似的逻辑,
int*const-foo
int-const*const-foo
是相同的。我从来没有听说过你可以把const放在前面或后面。呵呵。那么const int const*呢?@SirYakalot:这是一个错误-您只能指定
const
一次。如果你真的想写的话,你可以写
const int volatile
。你甚至可以说,通常最好把const放在类型之后,因为你从里到外读取复杂的类型,而且在这个特殊的例子中,与指针相关的const必须放在*。然而,实际上没有人为此烦恼。