在C中指针变量的大小取决于因素的情况下,我发现有困难.我检查了几个引用,我到目前为止唯一的信息是指针大小取决于处理器架构.我想知道以下细节
>请详细说明架构如何影响指针大小.
>一般来说,如果指针是x位,那么0到2 ^(X)-1地址位置的数量应该在那里.我在丢失轨道的同时将地址位置的数量和程序的实际可用内存量相关联.
指针是保存另一个内存位置的地址的变量.
现在如果你运行在32位架构上,那么持有内存引用的CPU的寄存器(最有可能也是所有其他的寄存器)将是32位长度的;这基本上是32位(寄存器是32位字长)的意思,因此一个指针(这是一个存储器位置)通常是32位长(4字节)
同样适用于64位CPU,因此为64位CPU编译的C程序中的指针通常具有8字节长度(64位)
编辑:
还请注意,在大多数现代架构中,您并没有真正使用代码来处理物理内存;您运行并处理所谓的虚拟内存.
基本概念是CPU / OS组合将您的程序列入您的完整地址空间.
再次,地址空间(您可以在内存中寻址的空间)长度将取决于CPU可以解决位置的距离,(通常情况下)将取决于其字长.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。