memory - 计算机如何跟踪特定内存位置存储的数据类型?

标签 memory variables types

我想这不是严格意义上的“编程”,但我已经思考了一段时间。当您创建一个变量并为其赋值时,计算机会为该变量分配一定数量的字节并存储该值,但是当它稍后返回使用它时,它如何知道该内存地址中的数据类型?

最佳答案

答案取决于您使用的语言是解释型还是编译型,以及其他各种细节。对于像 C 这样的编译语言,答案是编译器在将您的代码翻译成机器代码(或汇编程序)时,有一个内部数据结构来说明每个变量是什么——它的类型是什么,它的存储位置,可能其他信息也用于优化目的。 (但是当您的代码实际运行时,这些信息已经全部消失;需要编译您的代码而不是运行它。)

对于某些解释型语言,答案是解释器具有类似的数据结构,每当使用变量时都会对其进行查找。对于其他变量,解释器以相同的方式处理所有变量,但它们的附加了类型信息。

关于memory - 计算机如何跟踪特定内存位置存储的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5446298/

相关文章:

c - C 编程中变量过多导致的错误

types - 类型不匹配。预期 i32,发现 ()

python - 是否可以用 True 初始化 bool?

c# - 如何使用 C# 查找系统缓存和空闲内存

java - "Incompatible types: String cannot be converted to Person"?

memory - 在 Lua 中通过引用删除变量

java - 在类的一个实例上找不到公共(public)符号变量 (Java)

haskell - 应用实例化中的刚性变量

java - 防止使用共享内存

c++ - 指向引用/地址参数的指针