为什么声明void f(const int*p)正在修改p

hac*_*cks 1 c pointers const

通过声明

const int i;
Run Code Online (Sandbox Code Playgroud)

很明显,i无法修改.
那么为什么宣言呢

void f (const int *p) 
Run Code Online (Sandbox Code Playgroud)

正在修改p?(我测试了它,它正在修改,p但不知道如何?).

das*_*ght 7

const指针声明中的位置很重要.你向后看了它:

  • const int *p意思是"p是一个指向int哪个常量的指针"
  • int * const p意思是"p是指向的常量指针int"
  • const int * const p表示"p是指向常量的常量指针int"