相关疑难解决方法(0)

有什么内存地址空间?

使用了什么形式的内存地址空间?

今天,大型扁平虚拟地址空间很常见.从历史上看,已经使用了更复杂的地址空间,例如一对基地址和偏移量,一对段号和一个偏移量,一个字地址加上一个字节或其他子对象的索引,依此类推.

不时,各种答案和评论声称C/C++指针本质上是整数.这是一个不正确的C/C++模型,因为各种地址空间无疑是一些关于指针操作的C规则的原因.例如,不在数组之外定义指针算法简化了对基本和偏移模型中指针的支持.指针转换的限制简化了对地址加额外数据模型的支持.

这种反复出现的断言激发了这个问题.我正在寻找有关各种地址空间的信息,以说明C/C++指针不一定是一个简单的整数,并且考虑到要支持的各种机器,C/C++对指针操作的限制是明智的.

有用的信息可能包括:

  • 具有各种地址空间和这些空间的描述的计算机体系结构的示例.
  • 在当前正在制造的机器中仍在使用的各种地址空间的示例.
  • 引用文档或解释,尤其是URL.
  • 详细说明地址空间如何激发C/C++指针规则.

这是一个广泛的问题,所以我愿意接受有关管理它的建议.我很高兴看到一个通用包容性答案的协作编辑.然而,这可能无法授予应得的声誉.我建议投票多个有用的贡献.

c c++ computer-architecture memory-address

20
推荐指数
2
解决办法
1429
查看次数

整数变量赋值的差异

我刚问了这个问题,它让我思考是否有任何理由

1)为什么要使用十六进制或八进制而不是十进制来分配一个int变量

2)不同的分配方式有什么区别

int a=0x28ff1c;  // hexideciaml
int a=10;        //decimal (the most commonly used way)
int a=012177434; // octal
Run Code Online (Sandbox Code Playgroud)

c++ variables variable-assignment

1
推荐指数
1
解决办法
4604
查看次数