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;
发布了9 篇原创文章 · 获赞 1 · 访问量 7270

猜你喜欢

转载自blog.csdn.net/JakeLinfly/article/details/103921015