const修饰指针一共有三种情况,分别是const修饰常量、const修饰指针、const既修饰指针又修饰常量,以下是三种情况的举例:
1、const修饰常量
指针的指向可以改变,但指针所指向地址的值不可改变。
#include<iostream>
//using namespace std;
int main()
{
int a=10,b=20;
const int * p1=&a;
*p1=20;//指针所指向地址的值不可改变,否则会报error
p1=&b;//指针的指向可以改变
}
2、const修饰指针
指针的指向不可改变,但指针所指向地址的值可以改变。
#include<iostream>
//using namespace std;
int main()
{
int a=10,b=20;
int* const p1=&a;
p1=&b;//指针的指向不可改变,否则会报error
*p1=20;//指针所指向地址的值可以改变
}
3、const既修饰指针又修饰常量
指针的指向和指针所指向地址的值都不可以改变。
#include<iostream>
//using namespace std;
int main()
{
int a=10,b=20;
const int* const p1=&a;
p1=&b;//指针的指向不能改变,否则会报error
*p1=20;//指针所指向地址的值不可改变,否则会报error
}