图解C/C++中const修饰指针的三种情况

我们先来看一下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;
}

后记:

经验分享 程序员 微信小程序 职场和发展