C零基础视频-32-指针铺垫知识:计算机分级结构

Posted shellmad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C零基础视频-32-指针铺垫知识:计算机分级结构相关的知识,希望对你有一定的参考价值。

计算机的体系结构

  • 冯诺依曼体系结构
  • 哈佛体系结构

技术图片

CPU是计算的核心,用于解析机器码和执行指令。CPU的数据处理能力非常快,但是(寄存器的)存储空间非常有限。
内存的数据传输速度适中(与CPU、硬盘比),存储空间适中;
硬盘数据传输速度慢,存储空间大。

CPU可以(通过总线)直接操作内存,这样的能力体现在CPU指令上。实际上,计算机的绝大多数功能,都是通过CPU操作内存直接体现的。
其他的显示器、硬盘、打印机等是“外设”。
因此,CPU如何定位内存操作内存,非常重要。

什么是内存

从硬件角度看,内存就是内存条。
从软件角度看,每一个程序运行后,操作系统会分配一块空间给该程序,正在运行的程序的数据,绝大多数放在内存中;
为了能够让CPU可以精确操作每一处内存,所有的内存都有编号,他们被称为内存地址
对于32位程序,内存地址的范围从0到0xFFFFFFFF。

  • 内存是一个小区
  • 内存地址是门牌号码

指针

C语言为了更好地表达内存寻址及数据处理的方式,发明了指针变量。每一个指针变量中,都保存一个内存地址。按照以上的类比,如果内存是小区,内存地址是门牌号码,那么指针更像是名片。

int main(int argc, char* argv[])
{
    int nValue = 100;
    int* pValue = &nValue;
    return 0;
}

以上是关于C零基础视频-32-指针铺垫知识:计算机分级结构的主要内容,如果未能解决你的问题,请参考以下文章

零基础学C语言知识总结十:指针及其相关知识

C零基础视频-33-指针的定义与使用

零基础学c语言书籍,百度云的

零基础学C语言知识总结十:指针及其相关知识

零基础怎样写代码?

C零基础视频-45-内存的分区:全局区栈区堆