英文 | 含义 | 声明(int为例) | 中文 |
---|---|---|---|
const pointer | 指针指向不可以改变 | int *const p | 常量指针 |
pointer to const | 指针指向的值不可以改变 | const int * p; int const *p | 指针常量 |
上面表里的含义和声明大家应该都没什么问题。但是,网上很多帖子中,const pointer
翻译成了指针常量,pointer to const
翻译成了常量指针,刚好与上表中反了过来。从《C++ Primer 第五版》第56页中可以得到答案:
“Talk is cheap. Show me the code.”
int main()
{
int a = 0;
int b = 1;
int* const p = &a; // 常量指针
// p = &b; // 编译不通过
*p = 2; // 编译能通过
const int* q = &b; // 指针常量
//*q = 3; // 编译不通过
q = &a; // 编译能通过
return 0;
}