C++ 常量指针&指针常量

一、常量指针


常量指针:顾名思义就是指向常量指针使用常量指针可以防止使用该指针来修改所指向的值。声明形式为const type *pttype const *pt

// 不希望函数内部修改参数的值(或者说是函数调用的值),例如求和但不希望改变原来的值
int sum(const int *pA, const int *pB) {
	int ans;
	//*pA += 1;  //error: assignment of read-only location ‘* pA’
	ans = *pA + *pB;
	return ans;
}
//------------------------
int value = 10;
const int const_value = 9;		// const变量
int *pt = &const_value;			// invalid  将const变量的地址赋给常规指针,不可行
//补充解释:若允许这样赋值,则可以通过pt来修改const_value的值,这使得变量定义的const很荒谬
const int *pt_const = &const_value;		// valid 将const变量的地址赋给const指针,可行

注:能用就尽可能使用const

  1. 可以有效避免无意间修改数据导致的错误
  2. 使用const作为函数形参,可接受const和非const类型实参,否则无法接受const实参

二、指针常量


指针常量:即数据类型为指针类型常量将指针本身定义为常量,可以防止改变指针所指向的位置。声明形式为type* const pt

int num;
int* const p_num = #

三、指向常量的指针常量


指向常量的指针常量:名字听起来绕,解释一下就是——本身是一个常量,类型为指针类型,它所指向的对象一个常量。声明形式为const type* const pt

const int value = 10;
const int* const pt = &value;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值