1
6
在概念层面上,我同意你的观点——我将对象的地址定义为“在内存中定位对象所需的信息”。不过,地址的样子可能会有很大的不同。
|
2
5
我会打电话的
在
因此,进程间指针不表示为地址,但可以解析为一个地址。
|
3
3
如果我们熟悉使用指针算法访问数组元素,就很容易理解对象在内存中是如何布局的以及如何布局的
因此,访问字段的代码实际上将变成使用指针算法访问数组元素:
对象数组
第一个单元格指向引用计数的地址。编译器将发出适当的代码来访问
现在很容易理解
现在想想当我们试着
|
4
2
假设我们有指针
|
5
1
智能指针是 指针 非静态成员函数可能是复杂的结构,包含有关虚函数表的信息。 迭代器是泛型 . 可能正确的问题应该是这样的:
|
6
1
我认为这样说是公平的,他们“存储”地址,只是这样说并不能传达太多。这只是另一种表达指针的方式 是 . 它们还可以存储其他信息,并且可以通过引用其他一些结构来存储实际的物理/虚拟数字地址,但是在C++语义方面,指针变量包含地址。 Abyx提出了一个问题,即只有对象和函数指针表示地址。指向成员的指针不一定代表地址。但是C++标准明确地指出,标准中的“指针”一词不应该包括指向成员的指针。所以你可能不算。 除segment:offset (这显然是一个由两个数字组成的地址),我能想到的最可信的“有趣的指针”应该是指针中包含某些类型信息的指针。在C++中,你不可能以降低你可以处理的空间为代价来优化RTTI,但你永远不知道。 另一种可能性是,如果你正在执行垃圾回收C++,那么每个指针可以存储关于它指向堆栈还是堆的信息,也许你可以偷偷地输入一些信息来帮助精确地与保守的标记相关联。 不过,我没有遇到任何人用C++中的指针做这些事情,所以我不能保证它们是真正的用途。还有其他存储类型和GC信息的方法,这可能更好。 |
George S. · 是否存在基于元组的控制流语句内部表示? 6 年前 |
FlatAssembler · 在x86程序集中计算exp(x) 6 年前 |
cib · 即时编译和动态编译有什么区别? 6 年前 |
Artemis · 寄存器与指令之间的差异 6 年前 |
Sam · 了解go工具编译和链接命令 6 年前 |