我想这不是严格意义上的“编程”,但我已经思考了一段时间。当您创建一个变量并为其赋值时,计算机会为该变量分配一定数量的字节并存储该值,但是当它稍后返回使用它时,它如何知道该内存地址中的数据类型?
最佳答案
答案取决于您使用的语言是解释型还是编译型,以及其他各种细节。对于像 C 这样的编译语言,答案是编译器在将您的代码翻译成机器代码(或汇编程序)时,有一个内部数据结构来说明每个变量是什么——它的类型是什么,它的存储位置,可能其他信息也用于优化目的。 (但是当您的代码实际运行时,这些信息已经全部消失;需要编译您的代码而不是运行它。)
对于某些解释型语言,答案是解释器具有类似的数据结构,每当使用变量时都会对其进行查找。对于其他变量,解释器以相同的方式处理所有变量,但它们的值附加了类型信息。
关于memory - 计算机如何跟踪特定内存位置存储的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5446298/