回答如下:
在C++中,指针常量(pointer to constant)
和常量指针(constant pointer)
都是指针类型,它们的区别在于指针本身和指向对象的值是否可变,两者并不冲突
。
-
指针常量:
指向的内存地址不可变
,但可以修改指向对象的值。
例如:int x = 1; int* const p = &x; 可以通过 *p 来修改 x 值,但不能修改 p 指向的内存地址,类似于引用。
常量指针: -
常量指针:
指向的对象的值不可变
,但可以修改指向的内存地址。
例如:const int x = 1; const int* p = &x; 可以修改 p 指向的内存地址,但不能通过 *p 来修改 x 的值,这也是最常见的用法。
总之,指针常量和常量指针的主要区别在于修饰的对象不一样。