C语言基础入门48篇_32_指针铺垫知识:计算机分级结构(CPU<-->内存<-->硬盘、程序存储在硬盘,运行程序时,操作系统将程序拷贝到内存,通过总线读取内存数据)

2023-10-27

1. 计算机的体系结构


计算机采用的为分层结构,主要分为两种结构:

  • 冯诺依曼体系结构:绝大多数电脑的结构
  • 哈佛体系结构

虽然存在不同的结构,但主要的结构均采用以下三种的层次:
在这里插入图片描述

2. 程序运行时各个层次作用


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

总结: 硬盘传输速度太慢,如果直接从硬盘读取数据就会和CPU速度不匹配,采用内存作为折中方案,程序刚开始是躺在硬盘中,当运行程序时,操作系统会把硬盘中内容拷贝到内存中,CPU从内存中读取数据处理,这个过程实际上是CPU是通过总线读取内存数据

3. CPU运行过程


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

4. 什么是内存


从硬件角度看,内存就是内存条, 从软件角度看

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

形象一些的比喻:内存是一个小区,内存地址是门牌号码

5. 指针的含义


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

int main(int argc, char* argv[])
{
    int nValue = 100;
    int* pValue = &nValue;
    printf("%p,%p\r\n", &nValue, pValue);
    return 0;
}

运行结果:两者的地址一致
在这里插入图片描述
内存中存储的数据
在这里插入图片描述

6. 学习视频地址:指针铺垫知识:计算机分级结构

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言基础入门48篇_32_指针铺垫知识:计算机分级结构(CPU<-->内存<-->硬盘、程序存储在硬盘,运行程序时,操作系统将程序拷贝到内存,通过总线读取内存数据) 的相关文章

随机推荐

  • [Cmake]源码编译安装Cmake

    源码编译安装Cmake 获取cmake软件包 解压并进入软件包目录 执行配置 编译和安装命令 设置环境变量 执行如下命令验证是否安装成功 获取cmake软件包 wget https cmake org files v3 18 cmake 3
  • PTA 7-3 求整数序列中出现次数最多的数 (10 分)

    本题要求统计一个整型序列中出现次数最多的整数及其出现次数 输入格式 输入在一行中给出序列中整数个数N 0
  • ELF文件头结构

    转自 https blog csdn net tangyuesb article details 54630787 ELF文件头结构定义在 usr include elf h 头文件下 ELF文件有32位版本和64位版本 故其头文件结构也有
  • 进度条教程【github.com/cheggaaa/pb】

    进度条 学习目标 学习内容 前置说明 一个简单的进度条案列 多个进度条的联合使用 进度条在文件Copy IO流的运行 学习总结 学习目标 了解进度条运行原理 掌握github com cheggaaa pb第三方依赖的函数 实践一个进度条
  • 【基础知识】什么是哈希冲突?

    1 什么是哈希表 哈希表 Hash Table 是一种数据结构 它可以快速地在大量数据中查找 插入和删除时数据 哈希表通过使用哈希函数将键 Key 映射到一个位置 然后在该位置存储或查找数据 哈希函数的作用是 将键转换为一个整数 这个整数通
  • linux下服务get请求发生400的问题

    今天遇到个郁闷的问题 平时在windows系统一直跑得好好的服务 在linux下图片请求出问题了 报了个莫名其妙的400问题 虽然我也怀疑问题出在params 22cols 22 22 22id 22 6 22 参数上 但把引号怎么改都改不
  • 【笔记】QString中替换掉指定字符串

    首先使用正则表达式QRegExp匹配指定字符串 然后使用QString的replace方法进行替换 QString originText KobeBryantGigiAitch QString searchText Bryant QStri
  • ubuntu下samba 安装与配置

    为了实现在windows与Linux之间资源共享 Linux操作系统提供了samba服务 samba服务为两种不同的操作系统架起一座桥梁 使Linux系统和windows系统之间可以互相通信 下面简单介绍如何在linux上添加和配置samb
  • 算法---分治策略(快排)

    分治策略之快速排序 快速排序是对冒泡排序算法的一种改进 快速排序在面试过程中被提到的概率还是很大的 本文章我将介绍一下有关快速排序的一些问题 算法思想 1 指定一个定界值 通过该值会将数组分成两部分 2 将大于定界值的数据都放在右边 小于等
  • LeetCode 3. 无重复字符的最长子串

    LeetCode 第三题 无重复字符的最长子串 难度中等 给定一个字符串 s 请你找出其中不含有重复字符的 最长子串 的长度 示例 1 输入 s abcabcbb 输出 3 解释 因为无重复字符的最长子串是 abc 所以其长度为 3 示例
  • mysql中如何统计某字段里某个字符的个数

    如我的表order里有一个字段order num 里面存的是一些订单号 形式如 od 135484315315431541541 现在我要统计这个订单号有多少个8 如出现4个8就算中奖 请问如何把这些数据查找出来 select length
  • 查看Redis信息和状态

    redis cli连接服务器后 使用info命令查看Redis信息和状态 info 其中memory段显示了redis的内存使用状态 INFO section 以一种易于解释 parse 且易于阅读的格式 返回关于 Redis 服务器的各种
  • ESP32 模拟键盘的简单操作 (ESP32 for Arduino)

    本来是以前做过的ESP32项目 但是想拿来用在别的项目上时发现找不到了 所以重新写一下这个项目 记录一下 首先说明 使用ArduinoIDE 模块型号为esp32 wroom 32 库文件链接 https github com T vK E
  • 4sum

    基本的 穷举前面的数的组合 后两个数夹逼法的算法 O n 3 1 排序 2 主循环穷举前两个数的组合 保证数组至少剩下2个数 i 0 i
  • ssm毕设项目动态个人网站8j9pz(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目动态个人网站8j9pz java VUE Mybatis Maven Mysql sprnig 项目运行 环境配置 Jdk1 8 Tomcat8 5 Mysql HBuilderX Webstorm也行 Eclispe Int
  • 2022年国内十大低代码平台盘点,哪个值得一试?

    编者按 火爆的低代码平台究竟是什么 它有什么特殊的魅力一直吸引着大众的注意 本文将带你走近低代码 盘点国内典型的十大低代码平台 概要 1 什么是低代码平台 2 国内的低代码平台盘点 3 选型低代码平台时需要注意什么 什么是低代码平台 低代码
  • Python+OpenCV手势识别Mediapipe(基础篇)

    Python OpenCV手势识别Mediapipe 新手入门 前言 项目效果图 认识Mediapipe 项目环境 代码 核心代码 视频帧率计算 完整代码 项目输出 结语 前言 本篇文章适合刚入门OpenCV的同学们 文章将介绍如何使用Py
  • 《Spring源码深度分析》第2章 容器的基本实现

    目录标题 前言 一 容器的基本用法 1 创建一个简单的Spring项目 2 功能分析 3 spring beans模块 1 核心类 DefaultListableBeanFactory a 容器加载相关类图 b XmlBeanFactory
  • 在Unity 2019.3中更快地进入播放模式

    Play Mode is at the core of what makes Unity fun to work with But as your projects get more complex it can take a while
  • C语言基础入门48篇_32_指针铺垫知识:计算机分级结构(CPU<-->内存<-->硬盘、程序存储在硬盘,运行程序时,操作系统将程序拷贝到内存,通过总线读取内存数据)

    1 计算机的体系结构 计算机采用的为分层结构 主要分为两种结构 冯诺依曼体系结构 绝大多数电脑的结构 哈佛体系结构 虽然存在不同的结构 但主要的结构均采用以下三种的层次 2 程序运行时各个层次作用 1 CPU是计算的核心 用于解析机器码和执