我们先来看一下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; }
后记:
●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!
——By 作者:天空の乌托邦