为了账号安全,请及时绑定邮箱和手机立即绑定

内存地址 - 它对程序员有什么用?

内存地址 - 它对程序员有什么用?

holdtom 2021-06-01 21:01:32
我正在学习 Python,而且我经常可以看到内存中对象的地址,例如:... at 0x019F60F0当我运行程序时,那个 python 正在与我共享。如果无论如何,它将来对我有多大用处?还是只是运行程序的副作用,人类没有用?
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

要回答关于内存地址有用的问题,它们绝对有用。我不是 python 开发人员,所以我不知道为什么你会得到输出给你的地址,但总的来说,它们可以以多种不同的方式使用。
对于初学者来说,它们在调试代码时非常有帮助。如果您需要在代码中的确切时间点确切地知道内存地址中的值是什么,您可以设置一个断点,并根据您使用的 IDE(例如在 Visual Studio 2017 中),您可以查看内存地址中的值并将其与您期望的值进行比较。
另一个有用的东西是优化。在许多编程语言中,您可以引用已经保存该值的内存地址,而不是创建一个占用更多内存空间的新变量。在内存有限的机器(如嵌入式系统)或需要非常快的程序中,从长远来看,可以获得巨大的性能提升。
在我的最后一个例子中,我将讨论安全性。尽管我不是该主题的专家,但我确实知道通过查看某些系统(例如服务器)中的部分内存,您可以了解自己是否受到了攻击。您可以通过查找损坏的内存模式来判断。我确信有很多攻击会破坏你的记忆,但我能想到的一种是缓冲区溢出。缓冲区溢出

查看完整回答
反对 回复 2021-06-09
?
catspeake

TA贡献1111条经验 获得超0个赞

juanpa.arrivillaga 说:

这只是所有类型从 object 继承的默认repr。主要用途是调试和能够区分不同的对象,地址本身相当于在 CPython 中调用 hex(id(some_object)) (尽管这是一个实现细节)。


查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信