指针常量 是 int* const ptr。
先指针int* 后常量const,常量const修饰的是后边ptr(指针),所以p不可修改,*ptr无限制可以修改。
即,ptr = &b不可行,*ptr = b 可行。
#include <iostream>
int main(){
int a = 10;
int *const ptr = &a; // 指针常量 int * const 常量修饰的是指针 指针不能修改
int b = 8;
*ptr = 20; // 合法,修改指针所指向的值
//ptr = &b; // 非法,修改指针的值
return EXIT_SUCCESS;
}
常量指针 const int * p;
先常量 const ,后指针 int*,常量修饰的是 p(内容),所以p不可修改,p无限制可修改。
即*ptr = b不可行,ptr=&b可行。
#include <iostream>
int main(){
int a = 10;
const int *ptr = &a; // 常量指针 const int * 常量修饰的内容 内筒不能修改
int b = 8;
ptr = &b; // 合法,修改指针的值
//*ptr = 20; // 非法,修改指针所指向的值
return EXIT_SUCCESS;
}