C内存3:虚拟地址

本文探讨了C语言中指针和内存地址的概念。程序中的变量名在编译后变为虚拟地址,而实际内存中是物理地址。虚拟地址在程序中使用,通过映射关系找到对应的物理地址,使得不同程序可以使用相同的虚拟地址但拥有独立的物理地址空间。在编程中,我们通常处理的是虚拟地址,物理地址由操作系统管理。
摘要由CSDN通过智能技术生成

在C语言中有一个指针这么一个烦人的东西,经常会涉及到内存地址等概念。

int a=4;

//这段代码保存之后就存在硬盘上,之后对这个代码操作要从硬盘上读取到内存,最后CPU才计算,再将计算结果返回给内存。

4既有一个虚拟地址,还有一个物理地址(这样说对?还是4就对应一个地址就是存在于物理地址中,之后a对应虚拟地址),这两个地址都是指在什么上边的地址?(虚拟地址就是在程序里面使用的地址,物理地址就是内存条里的地址。首先变量名a在编译之后就会变成虚拟地址(就不存在了),知道a的虚拟地址,再根据映射关系,去内存上找物理地址,才能取到4来使用?)

编写一个程序时会有变量名函数名数据等内容,但是该程序在被编译后就只存在数据、地址和指令这些东西,变量名函数名就会转化为地址形式来存在。虚拟地址就是在程序里面使用的地址,物理地址就是内存条里的地址。编写不同的程序就会产生相应的不同的虚拟地址(比如一个程序int a=4;和另外一个程序int a=5;根据数据类型的话,这两个程序可以使用同一个虚拟地址,操作系统会定义不同的映射关系,分别找到4和5在内存上的物理地址,进而取数据操作。),

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Upupup6

写手不易请留下你的打赏鼓励谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值