#include <iostream>
using namespace std;
int main()
{
int a = 1;
int b = 2;
//指向常量的指针,不能通过指针改变指向地址的值,但是指针本身是可以改变的,常量指针
const int* p1 = &a;
cout << "*p1=" << *p1 << endl;
p1 = &b; //指针本身可以指向不同的地址
//*p1 = b; 编译报错,不能通过p1改变指针指向的值,因为指向的值是一个常量;
//a = 2; //但是可以直接改变a的值,然后通过指针访问,相当于指针只读而不能写
cout << "*p1=" << *p1 << endl;
//指针类型的常量,指针常量
int* const p2 = &a; //指针指向的地址不可改
cout << "*p2=" << *p2 << endl;
//p2 = &b; 编译时报错,指针指向的地址不可改
*p2 = b; //指针指向地址的值可以改变
cout << "*p2=" << *p2 << endl;
system("pause");
return 0;
}
运行结果