前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(慕课体系学习)C++中高级工程师技术分享

(慕课体系学习)C++中高级工程师技术分享

原创
作者头像
用户11121703
发布2024-05-14 18:58:02
960
发布2024-05-14 18:58:02

C++中高级技术重难点知识点概括

1.1 指针

指针定义:值为地址,指向内存。

1.2 引用

左值引用

定义:变量的别名,初始化即定义。 左值引用在汇编层面其实和普通的指针是一样的

代码语言:javascript
复制
int a = 10;
int &b = a;  // 定义一个左值引用变量
b = 20;      // 通过左值引用修改引用内存的值
c++ 11 特性:右值引用

C++对于左值和右值没有标准定义,但是有一个被广泛认同的说法:

  • 可以取地址的,有名字的,非临时的就是左值;
  • 不能取地址的,没有名字的,临时的就是右值;

不能取地址的,没有名字的,临时的就是右值

类型 && 引用名 = 右值表达式;

代码语言:javascript
复制
int &&var = 10;

2.1 指针和引用的共同点和区别点

2.1.1 共同点
1. 指针和引用都可以作为形参,改变实参的值。

举例

void function(Object *pObj) 等价于 void function(Object & obj)

2.1.2 区别点
1.定义不同

指针是一个变量,存储的是一个地址,指向内存的一个存储单元。 引用是原变量的一个别名,跟原来的变量实质上是同一个东西。

2、指针可以有多级,引用只能是一级

有意思的是:n级指针效果等于 n-1级指针+&

例如:

代码语言:javascript
复制
void Func(Object *** pppObj);
等价于
void Func(Object **& pprObj);
3、指针可定义时不初始化,引用必须定义时初始化
4、指针可以指向NULL,引用不可以为NULL

C++中高级工程师必学 操作系统底层工作原理

冯诺依曼计算机模型

冯诺依曼计算机模型包含有以下五大核心部分组成:

  • 控制器(Control)是整个计算机的中枢神经,其功能是对程序规定的控制信号进行解释,根据要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
  • 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
  • 存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
  • 输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合你为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。
  • 输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。 冯诺依曼模型只是一个抽象简化模型,具体应用提现在现代计算机的应用中,如下图:

CPU内部结构

CPU内部结构分为

  • 控制单元:控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和 操作控制器OC(Operation Controller) 等组成,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括:节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。
  • 运算单元:运算单元是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。
  • 存储单元:存储单元包括 CPU 片内缓存Cache和寄存器组,是 CPU 中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU 访问寄存器所用的时间要比访问内存的时间短。 寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。采用寄存器,可以减少 CPU 访问内存的次数,从而提高了 CPU 的工作速度。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据;而通用寄存器用途广泛并可由程序员规定其用途。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • C++中高级技术重难点知识点概括
    • 1.1 指针
      • 1.2 引用
        • 左值引用
        • c++ 11 特性:右值引用
      • 2.1 指针和引用的共同点和区别点
        • 2.1.1 共同点
        • 2.1.2 区别点
    • C++中高级工程师必学 操作系统底层工作原理
      • 冯诺依曼计算机模型
        • CPU内部结构
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档