C/C++整理
发布日期:2022-02-17 02:39:50 浏览次数:31 分类:技术文章

本文共 707 字,大约阅读时间需要 2 分钟。

C/C++整理

const和volatile

  1. const

const关键字修饰变量,表示该变量为常量,不能修改常量的值。

如果const修饰*,表示该指针变量指向的是常量,不能通过该指针变量修改指向的内容,但该指针变量的值可以修改。
注:const修饰指针变量时,如果const位于的左侧,则const就是来修饰指针变量指向的内容,即指针变量指向的内容为常量;
如果const位于
右侧,则const修饰的是指针变量,即指针变量的值是常量。
补:const int n=10;
int a[n];//在C中,编译时不知道n的值,将其看成0,所以会编译出错;在C++中,编译时知道n的值,编译不会出错。

2.volatile

volatile关键字:易变的。即告诉编译器volatile变量是随时可能发生变化的,与volatile变量有关的运算不要进行编译优化,以免出错。

int square(volatile int ptr)
{
return ptr * ptr;
}
返回值可能不是所期望的平方值。因为告诉编译器
ptr是随时可能发生变化的,每次使用它的时候必须从它的地址中读取,如果没有volatile关键字,编译器的优化做法是由于两次从ptr读取
ptr时没有对
ptr进行操作,编译器会会把第一次读取的数据放在第二个ptr中,而不是重新读取。所以ptr可能被意外地修改,因此这两个值可能是不同的,返回值可能不是所期望的平方值。
总之:(1)volatile关键字告诉编译器不能做任何优化;(2)由于用volatile定义的变量会在程序外被改变,每次都必须从内存中读取,所以不能放在cache或寄存器中重复使用。

转载地址:https://blog.csdn.net/qq_39814715/article/details/108877648 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:vue 官方文档 - 处理边界情况
下一篇:抽象工厂实例理解

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月01日 20时04分12秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

android 图片点击变色,Android开发实现ListView点击item改变颜色功能示例 2019-04-21
android增删改查布局,Android之父_增删改查 2019-04-21
vowifi android开关,如何配置VoLTE, ViLTE and VoWifi(IMS config for VoLTE, ViLTE and VoWifi) 2019-04-21
电脑端的mafsvr服务关掉_网吧才是电脑优化的精髓!学会3招你也不用羡慕网吧的流畅了... 2019-04-21
html获取文件路径_HTML 文件路径 2019-04-21
mysql滴的一声就关了_关于mysql数据库在输入密码后,滴的一声直接退出界面的解决办法(详细办法)... 2019-04-21
mysql in 有序_mysql中的in排序 mysql按in中顺序来排序 2019-04-21
mysql 行转列 显示_mysql 行转列 (结果集以坐标显示) 2019-04-21
mysql 完全备份恢复吗_MySQL完全备份与恢复 2019-04-21
wpf 绘制矩形_WPF制作倒影效果 2019-04-21
mariadb mysql 5.7_MariaDB 10.1 和 MySQL 5.7 在普通商用硬件上的表现 2019-04-21
由于连接方在一段时间后没有正确答复或连接的主机_新风换气机使用效果不佳,为何?掌握正确使用方法就好了... 2019-04-21
mysql数据库断电恢复_MySQL数据库InnoDB引擎下服务器断电数据恢复方法 2019-04-21
python入门程序异常_Python 入门 之 异常处理 2019-04-21
python 键盘输入int_Python编程 Python如何获取数据 2019-04-21
h3c trunk口改access_H3CNE配置VLAN的Access链路端口和Trunk链路端口 2019-04-21
mysql 查询姓王_MySQL查询语句练习题,测试足够用了 2019-04-21
mysql多实例脚本_mysql多实例脚本 2019-04-21
python如何生成excel文件夹_用python脚本通过excel生成文件夹树结构 2019-04-21
python获取post请求中的所有参数_Django从POST reques获取请求参数 2019-04-21