我们先来看一下const在修饰指针时有哪三种情况?
const修饰指针 --- 常量指针
const修饰常量 --- 指针常量
const即修饰指针,又修饰常量
1、常量指针
友情提示一下:图中的红色框和红色箭头表示不可修改的;黑色是可修改的
2、指针常量
相对于常量指针来说,指针常量只是const的位置发生了改变
3、 指针常量还是常量指针?
技巧:看const右侧紧跟着的是指针还是常量, 是指针就是常量指针,是常量就是指针常量
4、 const修饰指针和常量
简单来说,就是const修饰哪一个部分,我们就无法对那个部分进行操作(修改)
5、简单的验证
6、验证的源代码
源代码如下,大家可自取去编译器上进行验证
#include<iostream>
using namespace std;
int main()
{
//1、const修饰指针 常量指针
int a = 10;
int b = 10;
const int* p = &a;
//指针指向的值不可以改变,指针的指向可以改变
*p = 20; //错误
p = &a; //正确
//2、const修饰常量 指针常量
//指针的指向不可以改变,指针指向的值可以改变
int* const p2 = &a;
*p2 = 100;
p2 = &b; //错误
//3、const修饰指针和常量
const int* const p3 = &a;
//指针的指向 和 指针指向的值 都不可以改
*p3 = 100; //错误
p3 = &b; //错误
return 0;
}