三种情况
1.const修饰指针--常量指针
2.const修饰常量--指针常量
3.const既修饰指针,又修饰常量
1.常量指针
特点:指针的指向可以修改,但是指针指向的值不可以改
const int*p
2.指针常量
int *const p
特点:
指针的指向不可以改但是指针指向的值可以改
3.const又修饰指针又修饰常量
const int *const p
特点:
指针指向的值和地址都不可以修改
巧记:const“常量”
const int*p 常量指针 const后为* 故取*操作不能再做
int *const p const修饰p故指向的地址不可以改
#include<iostream>
using namespace std;
int main()
{
//1.const修饰指针 常量指针
//值不可改,指向可改
int a=0;
int b=0;
const int*p=&a;
//*p=20 错误
p=&b;//正确
//2.指针常量
//指针指向不可改指向的值可以改
int *const p2=&a;
*p2=100;//正确
//p2=&b错误
//3.指针的值和地址都不可以改
const int*p const &p3=&a;
//*p3=100;错误
//p3=&b;错误
}