const可以把有关的数据定义为常量。

const类型可以修饰:对象,指针,引用

使用const_cast为强制类型转换,将常量强制转换非常量。

 1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int a = 10;
6 const int* p = &a; //定义 int类型的常量指针 p ,并指向 a 的地址,*p不能被修改
7 const int ca = 30; //定义一个常量 ca 并赋值为30
8 int* q;//定义int类型的空指针 q
9 cout << "a的地址为:\t" << &a << "\t a的值为:\t" << a << endl;
10 cout << "*p的指向地址为:" << p << "\t *p的值为:\t" << *p << endl;
11 q = const_cast<int*>(p);//通过 const_cast 将修饰指针 p 的const 类型去掉,从常量指针强转为非常量指针,且仍然指向原来的对象a
12 *q = 20;//将20赋值给指针q
13 cout << "a的地址为:\t" << &a << "\t a的值为:\t" << a << endl;
14 cout << "*p指向的地址为:" << p << "\t *p的值为:\t" << *p << endl;
15 cout << "*q指向的地址为:" << q << "\t q的值为:\t" << *q << endl;
16 cout << "分界线" << endl;
17 p = &ca;//定义指针 p 取 ca 地址
18 q = const_cast<int*>(p);
19 *q = 40;//将40赋值给指针q
20 cout << "ca的地址为:\t" << &ca << "\t ca的值为:\t" << ca << endl;
21 cout << "*p指向的地址为:" << p << "\t p的值为:\t" << *p << endl;
22 cout << "*q指向的地址为:" << q << "\t p的值为:\t" << *q << endl;
23 return 0;
24 }

最新文章

  1. ASP.NET Web API 配置 JSONP
  2. 2016年11月28日--ADO.Net 增、删、改、查
  3. javascript优化--10模式(设计模式)01
  4. HDU 5776 sum (BestCoder Round #85 A) 简单前缀判断+水题
  5. STM32之DMA
  6. Android view 小总结
  7. ViewPager引导
  8. volatile(C# 参考)
  9. UISearchBar的扩展使用
  10. Ubuntu使用之Svn命令小技巧
  11. IEEE754 处理数据变换
  12. JS声明对象时属性名加引号与不加引号的问题
  13. springboot自定义配置信息读取
  14. docker 安装 fastdfs
  15. Exception in thread &quot;main&quot; java.lang.UnsupportedClassVersionError : unsupported major.minor version 52.0
  16. C/C++中二进制与文本方式打开文件的区别
  17. Scala的内建控制结构
  18. docker镜像文件的导入与导出(docker镜像迁移)
  19. SRM484
  20. 阿里云配置 https 证书

热门文章

  1. Spring Security(3)
  2. 3. qtdesinger的使用方法
  3. Selenium4+Python3系列(十) - Page Object设计模式
  4. 【每日一题】【递归实现、自下而上、优化】-2022年1月12日-NC68 跳台阶
  5. USB口3A限流保护芯片。带短路保护
  6. 20W,PD快充协议芯片,带有PPS控制器的USB-PD3.0
  7. 一文带你搞懂 Google 发布的新开源项目 GUAC
  8. 深入浅出OSI七层参考
  9. 玩转 Go 生态|Hertz WebSocket 扩展简析
  10. 使用WPF或AspNetCore创建简易版ChatGPT客户端,让ChatGPT成为你的私人助理