一 "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. 01_Node的版本管理

    Node的版本管理工具 常见的node的版本管理工具有两种N.NVM 但是他们有一个致命的问题就是不支持Windwos 但是NVM延申了一个nvm-windows的版本,他就可以很好的支持window ...

  2. 【转载】rename。给文件批量改名的python脚本

    https://www.bilibili.com/read/cv16146757 确认py版本:2.7, 3.6? 1 import os, sys, re, math, openpyxl, csv ...

  3. OnMicro BLE应用方案|蓝牙语音遥控器-OM6621E

    随着物联网技术不断发展,家用电器往智能化方向持续迭代,使用红外遥控器这种传统的互动方式已经满足不了实际的使用需求,蓝牙语音遥控器作为人机交互新载体,逐渐取代传统红外遥控器成为家居设备的标配. 相比于传 ...

  4. python_lib_x_1000_file_csv.py

    #!/usr/bin/python # -*- coding: UTF-8 -*- from lib_config import * from lib.lib_x_0002_decorator_log ...

  5. SQL注入之延时注入(10)

    以下提供两种方式进行延时注入 GET /sqli/Less-10/?id=1"+and+sleep(5)--+ HTTP/1.1 Host: 192.168.245.146:6101 Use ...

  6. selenium grid4.0+分布式的部署配置(hub/node方式)

    一.grid安装 本文已jar包的方式讲解,访问并下载jar包:Releases · SeleniumHQ/selenium · GitHub 二.grid配置 假设主机:10.1.5.219,从机: ...

  7. 【记录】Linux Mint Cinnamon Desktop Enviroment使用记录

    之前使用的系统是Kali Linux,并不是看上了一堆工具,工具的话上虚拟机不好吗,会折腾的docker更好阿,主要是 1. 用习惯了gnome的桌面环境 2. 开箱即用 很多配置他都已经做好了 我都 ...

  8. 解决linux多网卡线路选择----windows arp绑定

    1.arp -a 查看所有arp状态,有静态和动态 2.临时绑定ip和MACarp -s IP MAC //MAC用-分割 3.使用netsh做永久绑定a) 查看接口序号(Idx):netsh i i ...

  9. go语言的结构体、指针、方法详解

    资源来自:https://blog.csdn.net/DXB2021/article/details/122652779 结体体定义如下: type author struct{ field1 typ ...

  10. JS回文检查(FreeCodeCamp项目)

    需求 如果传入的字符串是回文字符串,则返回 true. 否则返回 false 回文 palindrome,指在忽略标点符号.大小写和空格的前提下,正着读和反着读一模一样. 注意:检查回文时,你需要先去 ...