一 "const" 修饰变量

只能被初始化和读取,不能被赋值更改,且必需初始化,不初始化的话会因为读取到随机数而报错。

example:

const int date=100;

cout<<"date = "<<date;

//结果为100;

注意:如果以常量初始化,使用const之后,并不是立马开辟空间给date,而是事先存放在“符号常量表”中,当对date取地址时,系统才会为date开辟空间。

个人感觉有点类似于map.find。

后补:感觉引用map.find不合适哦,似乎应该是ASCII码值的感觉更贴切。

但是可以导出数据来进行二次更改

example:

const int date=100;

int *p=(int *)&date;//经过实践,这里的原因是要把const int *强制转换为int *,所以才有了(int *)。

*p=2000;

cout<<"*p"<<*p;//结果为2000。

cout<<"date"<<date;//结果为100。

这里就是把date的值装到*p里面去,所以对*p操作不影响,也不会报错

但是去找date,依旧是输出了100。

如果以变量初始化,那么const会立即开辟存储空间(没有符号常量表)

example:

int a=10;

const int date=a;

cout<<date;//结果是10。

最后,const修饰只读变量时,如果是自定义类型变量来进行初始化,也会立刻开辟空间(比如结构体等)

二 "register" 尽量将变量放入CPU的寄存器里

register的功能是尽量将变量放入CPU的寄存器当中,目的是提高读取速度。

寄存器可容纳的数量有限,所以并不是100%成功。

example:

register int a=100;//顺利的话,变量a已经被放入CPU里面的寄存器里了

cout<<a;//输出100;

注意:尽量不要对使用了register的变量进行取地址的操作(例如&a),因为取地址针对的是内存里的地址。因此其实反过来说,任何可以通过register操作还能进行&操作且不报错的,说明没有把变量成功的放入寄存器中,且编译器会检查该变量是否被频繁使用来进行判断。

c++学习1 基础关键词的更多相关文章

  1. 关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL))

    关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 欢迎fork本项目原始链接:关于图计算&图学习的基础知识概览:前置知识点学习 ...

  2. 一步步学习javascript基础篇(0):开篇索引

    索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...

  3. 一步步学习javascript基础篇(3):Object、Function等引用类型

    我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...

  4. JavaScript学习02 基础语法

    JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...

  5. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  6. IOS学习笔记之关键词@dynamic

    IOS学习笔记之关键词@dynamic @dynamic这个关键词,通常是用不到的. 它与@synthesize的区别在于: 使用@synthesize编译器会确实的产生getter和setter方法 ...

  7. Python3学习(1)-基础篇

    Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...

  8. Ant学习-001-ant 基础知识及windows环境配置

    一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...

  9. 学习javascript基础知识系列第二节 - this用法

    通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...

  10. 学习javascript基础知识系列第三节 - ()()用法

    总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...

随机推荐

  1. Ubuntu之切换root用户提示认证失败

    出现认证失败(Authentication failure)的原因有两种,要么是密码输入错误,要么是新安装的系统还没有给root设置密码,,如果是后者,可以通过命令sudo passwd root进行 ...

  2. Java pom阿里云插件

    <pluginRepositories> <pluginRepository> <id>alimaven spring plugin</id> < ...

  3. 2018GPLT

    2018GPLT 7-1 天梯赛座位分配 一共有n所学校参加比赛,每所学校有\(a_i\)只队伍,每只队伍共10人,要保证每个学校的所有队员不能相邻就坐,令每一所学校的队伍排成一排纵列,然后从第一所学 ...

  4. unable to access 'https://github.com/.../...git': Recv failure: Connection was reset

    解决git下载报错:fatal: unable to access 'https://github.com/.../...git': Recv failure: Connection was rese ...

  5. python40

    Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. 以下实例在变量赋值时 Number 对象将被创建: v ...

  6. 搭建ftp服务器的超详细步骤

    第一步:打开控制面板. 1.1选择程序这个选项. 1.2选择启用或关闭window功能 1.3勾选如图有红箭头的这几个选项. 第二步:搜索iis且将其打开 . 2.1点击网站,且点击添加网站 物理路径 ...

  7. MYSQL表操作(中篇)--数据类型

    1.数据类型 数值类型 1.整数类型 整数类型:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT 作用:存储年龄,等级,id,各种号码等 默认是有符号的 int[(m)][u ...

  8. oracle学习之undo读一致性及undo表空间设置大小

    1.一致性读和事务 一个事务开始以后,分配undo段头事务表和undo块,事务表指向undo块,数据块中有事务槽,底下有数据行,数据块事务槽中事务ID指向事务表,事务表指向undo块,数据块事务槽也指 ...

  9. oracle学习undo之事务槽和oracle的多种提交方式

    1.事务槽数量参数 每一个oracle数据块里面在数据块头部都有事务槽,事务槽的数量可以去查一下,如果数据库中的表T2: select INI_TRANS,MAX_TRANS from dba_tab ...

  10. Warning: PHP Startup: Unable to load dynamic library 'php_pdo_oci.dll'处理

    出现这样提示的原因可能有以下几种: (1)没有在php.ini中将extension=php_pdo_mysql.dll前面的分号去掉 在php.ini中分号表示注释,因为在配置时被注释掉了,所谓无法 ...