id a = self->isa;A和b具有相同的值。现在给定isa指针是相同的,为什么给出错误?我认为强制转换会改变isa指针,因为如果我将一个子类强制转换为它的父类,我就不能再调用子类的方法,而方法调用搜索是基于isa指针的。我想知道方法选择器是如何实现的,所以即使实例的一个指针指向Person,如果我调用实
我很高兴在代码中使用C++风格的强制转换操作符,但我不能说我真正的理解幕后发生的事情。我基本上在想,在下面的短过程中指针到底发生了什么事:class B : public A {};
A* pC = new C()我意识到pC所指向的对象总是C类型,但是在进行第一次强制转换之后,我假设存储在b中的地址不再等于pC的地址。但是如果转换改变了pC的值,我的假设是错误的。简单地说,强制转换运算符是否真的可以更改它们所投出的指针</
我目前正在使用一个Linux内核模块,我需要访问存储在数组中的一些64位值,但是我首先需要从一个空指针进行强制转换。我使用的是内核函数phys_to_virt,它返回一个空指针,我不完全确定如何实际使用这个空指针来访问它所指向的数组中的元素。test;
test = *(uint64_t*)ptr;我从test中得到的值并不是我