const用法

本文深入解析C++中const修饰符的多种用法,包括常量指针、指针常量、引用常量的区别及应用,以及volatile与const结合使用的效果。通过实例演示如何在不同场景下正确使用const,提高代码质量和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

const用法大全:

https://www.cnblogs.com/lanjianhappy/p/7298427.html

修改const int i;

https://blog.csdn.net/weixin_41413441/article/details/80860135

#include <iostream>
#include <string>
using namespace std;
int main()
{
	int a=100;//a为变量
	int *const cp = &a; //cp为 常量指针int型。即cp指针不能改变,但cp指针指向的内容可以改变。
	*cp = 200;
	cout << "a" << a<<endl;//输出200
	int const* p = &a;//p为指针常量int型。即p为指针可以改变,但p指针指向的内容不可以通过p指针来改变。
	int *pp = (int *)p;//pp指针赋值p,可以通过pp指针来修改p指针指向的内容。
	*pp = 300;
	cout << "a" << a<<endl;//输出300
	int b = 10;
	p = &b;
	cout << "*p" << *p << endl;
	int c = 20;
	const int& rc = c; //rc引用c,不能通过rc该引用来修改c的值。
	cout <<"rc"<< rc << endl;//输出20
	int& const rcc = c;//与上面一样
	cout << "rcc" << rcc << endl;//输出20
	const int d = 11; //d为常量11
	int *dp = (int*)&d;//dp指针指向d的地址
	*dp = 12;//通过指针来修改常量d
	cout << *dp << endl;//输出12
	cout<< d << endl;//输出11
	cout << dp << endl;//
	cout << &d << endl;//两地址相同,原因为const int d 常量的值放在了符号表中,而指针*dp修改的内存的值。
	const volatile int dd = 11; //加上volatile修改符,即告诉编译器该变量属于易变的,不要对此句进行优化,每次计算时要去内存中取数
	int *ddp = (int*)&dd;
	*ddp = 12;
	cout << *ddp << endl;//输出12,从内存取数
	cout << dd << endl;//输出12,从内存取数
	cout << ddp << endl;//输出地址
	cout << &(*ddp) << endl;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值