首页 > 编程语言 >c++学习1 基础关键词

c++学习1 基础关键词

时间:2023-01-31 23:55:54浏览次数:40  
标签:初始化 const 变量 int 关键词 c++ 学习 date cout

一 "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操作还能进行&操作且不报错的,说明没有把变量成功的放入寄存器中,且编译器会检查该变量是否被频繁使用来进行判断。

标签:初始化,const,变量,int,关键词,c++,学习,date,cout
From: https://www.cnblogs.com/wangbohan/p/17081205.html

相关文章

  • 【计算机网络】Stanford CS144 Lab0 : networking warmup 学习记录
    CS144官方镜像:https://cs144.github.io/kangyupl备份的镜像:https://kangyupl.gitee.io/cs144.github.io/实验准备Ubuntu18.04.6LTSx86_64(实验提供)gcc8......
  • JavaScript学习笔记—DOM:事件
    事件(event)事件就是用户和页面之间发生的交互行为比如:点击按钮,鼠标移动,双击按钮,敲击键盘,松开按键...可以通过为事件绑定响应函数(回调函数),来完成和用户之间的交互绑定响......
  • react官方文档-高级部分-Render Props学习(重要)
    前言:术语“renderprop”是指一种在React组件之间使用一个值为函数的prop共享代码的简单技术 具有renderprop的组件接受一个函数,该函数返回一个React元素并......
  • 《RPC实战与核心原理》学习笔记Day14
    19|分布式环境下如何快速定位问题?分布式环境下定位问题有什么难点?分布式环境下定位问题的难点在于,各子应用、子服务之间有复杂的依赖关系,我们有时很难确定是哪个服务......
  • 学习java第四天
    IDEA安装安装完创建src创建newjava.classIDE快捷键:1.psvm=publicstaticvoidmain(String[]args){ }2.sout=System.out.println();IDE:把ide精益求精JAVA语......
  • 动态规划学习笔记
    动态规划1,什么是动态规划私以为,动态规划就是在递归思想的基础上,用空间换时间,将已经计算过的结果用存储起来,消除冗余计算,提高算法效率。2,什么时候使用动态规划抽象一点......
  • Linux 内核概念和学习路线
    01前言本文主要讲解什么是Linux内核,以及通过多张图片展示Linux内核的作用与功能,以便于读者能快速理解什么是Linux内核,能看懂Linux内核。拥有超......
  • CUDA C++ / 错误处理
    错误处理接收错误信息定义一个cudaError_t类型的变量来接收错误信息cudaError_terr;获取错误信息的字符串cudaGetErrorString(err);使用方法:cout<<cudaGetErrorStr......
  • 网络安全学习之加解密相关知识
    常见编码方式 ASCII、ANSI、GBK、GB2312、UTF-8、GB18030和UNICODE Base64:是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示......
  • 树链剖分学习笔记
    怕到时候忘了,来写一篇笔记前置芝士:树的存储与遍历,\(dfs\)序,线段树。树链剖分的思想及能解决的问题:树链剖分用于将树分割成若干条链的形式,以维护树上路径的信息。具体......