首页 > 编程语言 >[C++学习]关键字

[C++学习]关键字

时间:2023-06-01 22:35:50浏览次数:47  
标签:const 变量 int C++ 学习 关键字 地址 寄存器 data

const关键字

const关键字表示该数据类型的值只读,不可赋值,也就意味着它必须初始化

const若是修饰常量,则只读变量的值会放在“符号常量表”中,而不会立即开辟空间,当数据取地址时则会开辟空间。

const int data = 100;
int *p = (int *)&data;  //开辟空间,p指向该空间。
*p = 2000;
cout << *p << endl;    //2000,值变了。
cout << data << endl;   //100,符号常量表的值。

 如果以变量形式初始化,则只读变量会立即开辟空间。(没有符号常量表)

    int a = 100;
    const int data = a;
    int *p = (int *)&data;   //赋值data地址
    *p = 2000;          //修改data地址内的值
    cout << *p << endl;    //2000
    cout << data << endl;   //2000

 如果以自定义类型变量,则立即开辟空间。(没有符号常量表)

register修饰寄存器变量

若是某变量高频使用时,系统会自动将该变量加入寄存器中。(被动)

加上register关键词可将数据放入寄存器中,会提高访问效率。(主动) //尽量不要对寄存器变量取地址,取地址是对内存操作,最好不要对寄存器取地址。

register变量只是尽量放入寄存器中,并不保证成功。

volatile关键词

 

标签:const,变量,int,C++,学习,关键字,地址,寄存器,data
From: https://www.cnblogs.com/canyooo/p/17450434.html

相关文章

  • 格路计数学习笔记
    格路计数学习(抄写)笔记\(2\)\(\operatorname{Dyck}\)路\(2.1\) 格路​ 定义2.1在平面直角坐标系中,横坐标和纵坐标都是整数的点称为格点,平面格路是指从一个格点到另一格点只走格点的路,格路的长度是指其所走的路的步数。\(2.2\) 自由路​ 定义\(2.2\)对于一条从\((0......
  • opencv学习笔记04-色彩转换
    opencv简易笔记4--色彩转换1.色彩空间的认识色彩是人的眼睛对于不同频率的光线的不同感受,色彩既是客观存在的(不同频率的光)又是主观感知的,有认识差异。所以人类对于色彩的认识经历了极为漫长的过程,直到近代才逐步完善起来,但人类仍不能说对色彩完全了解并准确表述了,许多概念不是......
  • 2023学年春季学期学习总结
    这个学期对于我来说是十分充实而难忘的一学期,因为在这个学期里我学到了很多有用的知识和技能,这些知识和技能将会对我的未来产生深远的影响。本学期我学习了WEB和安卓App项目的开发应用,我和我的团队学习了WEB和安卓App项目的开发,并且我们成功地开发了一款个人记账的应用程序,名为个......
  • linux 性能自我学习 ———— cpu 高怎么办 [三]
    前言linux性能分析自我学习。正文一般我们说cpu,一般是什么高呢?一般是指cpu使用率高。那么什么是cpu使用率呢?cpu使用率=1-空闲时间/总cpu时间平均cpu使用率=1-(new空闲时间-old空闲时间)/(new总cpu时间-old总cpu时间)我们可以使用top查看:那么来看下......
  • 【学习笔记】博弈论 ---- 非偏博弈
    博弈论入门前言:本篇按照Qingyu在省集讲的加入我这个萌新的萌新理解而成。听了Qingyu的博弈论讲解,感觉我之前学过的博弈就是冰山一角。由于有一些东西没听懂,就主要写写我听懂的部分,没懂得以后再说吧。所以这篇只是一个入门,关于博弈的一些习题可能会咕咕咕。平等博弈(非偏......
  • C++字符转码(GBK和UTF8)
    std::stringGB2312ToUtf8(constchar*pSrc,intnLen){stringstrOut;if(pSrc&&nLen>0){//ANSI->UNICODEintlen=MultiByteToWideChar(CP_ACP,0,(LPCTSTR)pSrc,nLen,NULL,0);WCHAR*wszUtf8=new......
  • C++面试八股文:C++中指针、引用、解引用和取地址有什么不同?
    某日小二参加XXX科技公司的C++工程师开发岗位2面:面试官:指针、引用、解引用和取地址是C++中的重要概念,请问它们在语法和语义上有所不同?小二:指针是一个变量,它存储了一个内存地址。小二:引用是一个别名,它允许使用一个变量的多个名称来访问同一个内存位置。小二:解引用是指使用*运......
  • 学习日记——初识OOP
    0.目录1.对象2.类3.方法1.对象(1)万物皆对象世界是由多个看得见摸得着的物件组成的(2)身边的对象看的见摸得着的物件都称为对象,对象之间有区别是因为静态的属性和动态的行为有区别(3)对象的特征①静态的属性定义1:每个对象都有各自的静态的特征,在计算机中称之为属......
  • 深入探索C++对象模型(十一)执行期语义学(临时对象)
    关于临时对象的几条准则。1. 在某些情况下,编译器可以产生必要的,或者可以带来方便的临时对象,具体行为由编译器来定义。例如,对于如下操作:1.Ta,b;2.Tc=a+b;//Toperator+(constT&,constT&)a.编译器会产生一个临时对象,放置a+b的结果,然后使用T的拷贝构造函数,把临时......
  • uniapp专题学习(四)
    前言在uniapp专题学习(三)中学习到的知识点有计算属性computed、计算属性computed和方法methods的区别、vue语法的自定义组件、pops的父子组件参数传递。native修饰符如果想在自定义组件执行原生的事件就需要用native来修饰假设我已经定义好了自定义组件,我想触发click事件,就需......