c++中const用法

#include "iostream"
int mValue = 29;
int getSize(){
	return mValue;
}

int mCV = getSize();

constexpr int ce1 = 41;

int main(){

	int i = 92;
	const int &ri = i;

	i = 13;

	std::cout << ri << std::endl;

	int v = 92.88f * 3;

	std::cout << v << std::endl;

	const double pi = 3.14;
	const double *pp = π

	double d1 = 3.14;
	const double *pd1 = &d1; //*号放在const之后,表示指针指向的是个常量
	//*pd1 = 83; //错误.指向常量的指针,认为常量不能通过该指针改变.


	double *const pd2 = &d1; //*号放在const之前,表示指针本身是常量,但是所指向的地址不一定存放的常量
	*pd2 = 72;//正确
	std::cout << d1 << std::endl;

	double nPi = 9292;
	// *pp =82; //错误.pp自以为所指向的变量是无法改变的常量
	pp = &nPi;  //正确.pp只是以为所指向的变量是无法改变的常量,但是pp指针本身可以改变
	std::cout << *pp << std::endl;


	int iv = 28;
	const int *const pv = &iv; //  pv指针与 *pv都不能改变
	const int *pvBottom = pv; //正确. pvBottom可以变,但是所指向的常量不能改变
	//int *const pvTop = pv;  //错误.引起误解,以为pvTop指针不可改变,但是*pvTop 可以重新赋值,这样引起冲突,导致错误.


	std::cout << *pvBottom << std::endl;
	std::cout << "mCV = " << mCV << std::endl;


	constexpr const int *pce1 = &ce1; //其中mValue与cel必须写在函数外部,>    确保编译阶段就能识别. pce1是常量指针,指向整型常量iv
	constexpr int *pce2 = &mValue;  //其中mValue与cel必须写在函数外部,确保编译阶段就能识别.pce2是常量指针,指向整数iv (这个和int *const 指针类似,自己体会,不要和const int *指针弄混了)
	return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值