首先int const*p=const int *p;都表示*p的值不能改变,而p(即地址)是可以改变的;
而int *const p表示 p(地址)是常量,不可改变,但是*p的值可以改变
常量指针是指向常量的指针,指针指向的内存地址的内容是不可修改的。
指针常量是指针的常量,它是不可改变地址的指针,但可以对它所指向的内容进行修改。
示例代码如下:
#include<iostream>
using namespace std;
int main(){
//常量指针
int a = 80;
int const *p = &a;//常量指针
cout<<*p<<endl;
//*p = 70;//错误,常量指针,指针指向的变量的值不可通过该指针修改
int b = 70;
p = &b;
cout<<*p<<endl<<endl;
//指针常量
int c = 60;
int * const p1 = &c;//针针常量
cout<<*p1<<endl;
*p1 = 50;
//int d = 40;
//p1 = &d;//定义一个指针指向一个常量,不能通过指针来修改这个指针指向的值。
cout<<*p1<<endl;
return 0;
}