C语言入门篇--理解地址及内存

 更新时间:2021年08月26日 16:32:58   作者:yycure  
本篇文章是基础篇,适合c语言刚入门的朋友,本文主要介绍了c语言的内存及地址,帮助大家快速入门c语言的世界,更好的理解c语言

1.内存

  • 内存是电脑中一个重要的存储器,计算机中所有的程序都在内存中运行的,内存的性能对计算机的影响非常大。
  • 内存是计算机与CPU进行沟通的桥梁,计算机会把程序由硬盘加载到内存中后再去使用。
  • 为了有效的使用内存,把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。

为了能够有效的访问即快速找到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

一般运行一个程序主要涉及计算机的三个设备:内存、CPU、硬盘。

1.1内存和CPU的关系

CPU是负责数据的运算和处理,内存是用来交换数据,如果没有内存则CPU就无法接收到数据。

1.2内存和硬盘的关系

在这里插入图片描述

eg:C语言中定义变量,都是在程序运行起来后在内存中开辟空间。

2.地址

2.1概念

(1)为了有效的使用内存,把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。

(2)为了能够有效的访问即快速找到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

2.2地址编号

在32位平台下,内存单元的地址是由32位的二进制数(即8位十六进制数)依次编号。

所以内存单元共有2^23个,而每一个内存单元保存1个字节的内容。(具体见上图)

ps:

计算机访问内存的基本单位是字节。

一般计算机有32位和64位机器。

以32位机器为例,则能安装的最大内存为(2^32)*(1字节)=4GB

ps:4GB计算来源: (2^32)*(1字节)=(2*10)*(2*10)*(2*10)*(2*2)*(1字节)=4GB

常见的存储单位:

bit(位)、B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)。

B 是 Byte 的缩写。

换算关系:

1B=8bit

1KB=1024B

1MB=1024KB

1GB=1024MB

2^10=1024

为了有效的使用内存,把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。

为了能够有效的访问即快速找到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

32位计算机是指能同时处理32位二进制数,内存单元的地址是由32位的二进制(即8位十六进制)数依次编号,所以内存单元共有2^23个,而每一个内存单元是1个字节。

所以有:
(2^32)*(1字节)=(2*10)*(2*10)*(2*10)*(2*2)*(1字节)=1024*1024*1024*4*(1字节)=4GB

2.3关于编址

(1)计算机为什么对每个字节进行编址?

提高查找效率。计算机内存中编址从最低的地址,依次向上进行编址,有了地址就可以对计算机中每个字节进行快速寻址,方便计算机进行快速查找。

(2)所有的编制都是连续编址的。

(3)编址是由硬件电路自动完成的。

2.4使用

(1)C语言中定义变量都是在内存中定义的,定义变量的本质是开辟空间。

(2)每个变量都有地址,取一个变量的地址称作取地址。

(3)指针就是地址。

eg:

char a='A';
int b=10;

在这里插入图片描述

以上就是C语言入门篇--理解地址及内存的详细内容,更多关于C语言的资文章料请关注脚本之家其它相关文章!

相关文章

  • Cocos2d-x学习入门之HelloWorld程序

    Cocos2d-x学习入门之HelloWorld程序

    这篇文章主要介绍了Cocos2d-x学习入门之HelloWorld程序,是学习Cocos2d-x的入门程序,其重要性不言而喻,需要的朋友可以参考下
    2014-08-08
  • 详解原码、反码与补码存储与大小

    详解原码、反码与补码存储与大小

    这篇文章主要介绍了详解原码、反码与补码存储与大小的相关资料,需要的朋友可以参考下
    2017-06-06
  • C语言数据结构与算法之图的遍历(一)

    C语言数据结构与算法之图的遍历(一)

    这篇文章主要是介绍了利用深度优先算法实现图的遍历,文中利用图文详细的介绍了实现步骤,对我们学习数据结构与算法有一定的帮助,需要的朋友可以参考一下
    2021-12-12
  • C++多线程基础理论详解

    C++多线程基础理论详解

    这篇文章主要介绍了C++多线程基础理论,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • C++实现假装蓝屏整蛊小程序

    C++实现假装蓝屏整蛊小程序

    因为工作的需要,有时候我们离开时并不想让别人看到我们电脑的内容,所以本文为大家分享了一个基于C++实现的假装蓝屏的小程序,需要的可以参考下
    2023-06-06
  • QT中对话框的使用示例详解

    QT中对话框的使用示例详解

    这篇文章主要为大家详细介绍了Qt中对话框的使用,以及QMessageBox类中常见函数的使用,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2022-11-11
  • C++中strlen函数的三种实现方法

    C++中strlen函数的三种实现方法

    在C语言中我们要获取字符串的长度,可以使用strlen 函数,strlen 函数计算字符串的长度时,直到空结束字符,但不包括空结束字符,因为strlen函数时不包含最后的结束字符的,因此一般使用strlen函数计算的字符串的长度会比使用sizeof计算的字符串的字节数要小
    2022-05-05
  • C++小知识:尽可能使用枚举类

    C++小知识:尽可能使用枚举类

    今天小编就为大家分享一篇关于C++小知识:尽可能使用枚举类,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • C语言详解无头单向非循环链表各种操作方法

    C语言详解无头单向非循环链表各种操作方法

    无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多
    2022-04-04
  • C++ main函数的几点细节

    C++ main函数的几点细节

    这篇文章主要介绍了C++ main函数的几点细节,帮助大家更好的理解和学习C++,感兴趣的朋友可以了解下
    2020-08-08

最新评论