C++中的常量指针和指针常量

导言:const在C++代码中占有很重要的地位,它可以让程序员告诉用户及编译器什么变量是不用改变的,以及用const代替#define的定义,避免有时因预编译器出现忽略#define定义而带来的错误…

常量指针:
当const出现在*号的左边,称为常量指针;例:

int a = 10;
	int b = 10;

	//const修饰的是指针,指针指向可以改,指针指向的值不可以更改
	const int * p1 = &a; 
	p1 = &b; //正确
	//*p1 = 100;  报错

**特点:**不能对常量指针指向的对象的内容进行修改,可以修改常量指针的指向。

指针常量:
当const出现在*号的右边,称为指针常量;例:

//const修饰的是常量,指针指向不可以改,指针指向的值可以更改
	int * const p2 = &a;
	//p2 = &b; //错误
	*p2 = 100; //正确

**特点:**不能对指针常量的指向进行修改,可以修改指针常量指向对象的内容。

当*左右两边均有const时:

//const既修饰指针又修饰常量
	const int * const p3 = &a;
	//p3 = &b; //错误
	//*p3 = 100; //错误

**特点:**既不能够修改指向又不能够修改指向所对应的内容。

补充

int * ptr; // 指向int的指针
const int * ptr; // 指向const int的指针,一般叫做常量指针
int * const ptr; // 指向int的指针常量。即指针的值是一个常量。
const int * const ptr; // 指向const int的指针常量
const int * * const ptr; // 指向常量指针的指针常量

最后两个有点绕人@_@…

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值