const的三种用法是指向常量的指针,常指针,指向常量的常指针吗?区别是什么呢
该回答引用GPT:
是的,const的三种用法指的是指向常量的指针,常指针,以及指向常量的常指针。
指向常量的指针:
int const *p = &a; // p指向常量a
常指针:
int * const p = &a; // p是一个常指针,指向变量a
指向常量的常指针:
int const * const p = &a; // p是一个指向常量a的常指针
这三种用法的区别在于指针的可变性,指向常量的指针可以改变指向,而常指针和指向常量的常指针则不能改变指向。
如还有疑问,可以私信帮助解决。
常量的指针,指针本身不是常量
常指针,指针内容不是常量
指向常量的常指针,都是常量,都不能修改
int a=10:
int b=10:
const int* p1=&a;
此时p1是一个指针常量,const修饰的是p1这个变量指向的地址内的数据类型,即修饰的是*p1的值。所以指针常量的指向可以变,指针指向的地址里的内容不可变,即p1可变,*p1不可变
*p1 = 20; //错误,指针指向的值不可以改
p1 = &b; //正确,指针指向可以改