1. const修饰常量
const 修饰 (*p), (*p)解引用为指针指向的变量,即可理解为const修饰变量。
#include<iostream>
using namespace std;
int main()
{
int a = 10;
const int *p = &a; //const修饰常量
// *p = 20; //错误,指针指向的值不能改变
// int *p1 = p; //错误,常量指针不能作为初始化的右值
int b = 20;
p = &b; //正确,常量指针的指向可以改变
cout << *p << endl;
system("pause");
return 0;
}
2. const修饰指针
const修饰p,p为指针,即const修饰指针,指针的指向不能变。
#include<iostream>
using namespace std;
int main()
{
int a = 10;
int *const p = &a; //const修饰指针
*p = 20; //正确,指针指向的值可以改变
int *p1 = p; //正确,指针常量可以作为初始化的右值
int b = 20;
// p = &b; //错误,指针的指向不可以改变
cout << *p << endl;
system("pause");
return 0;
}
3. const修饰常量和指针
#include<iostream>
using namespace std;
int main()
{
int a = 10;
const int *const p = &a;
// *p = 20; //错误,指针指向的值不可以改变
// int *p1 = p; //错误,指针常量不可以作为初始化的右值
int b = 20;
// p = &b; //错误,指针的指向不可以改变
cout << *p << endl;
system("pause");
return 0;
}