通过声明
const int i;
Run Code Online (Sandbox Code Playgroud)
很明显,i无法修改.
那么为什么宣言呢
void f (const int *p)
Run Code Online (Sandbox Code Playgroud)
正在修改p?(我测试了它,它正在修改,p但不知道如何?).
const指针声明中的位置很重要.你向后看了它:
const int *p意思是"p是一个指向int哪个常量的指针"int * const p意思是"p是指向的常量指针int"const int * const p表示"p是指向常量的常量指针int"