帮忙看看这个语句
以下这个语句求地址偏移量(深度探索C++对象模型书里的)
pv = (Vertex*)(((char*)&v3d) + sizeof(Point3d));
请大虾指教,为什么地址偏移量的计算要转换为(char*),
即这个转换(char*)&v3d看不懂是什么道理
[解决办法]
char 是一字节的,这个你应该知道吧.
int 是4字节的.
还有指针可以+上一个偏移值, 意义等于下n个元素.
比如: char* + 2 = 移动两个字节
int* + 2 = 移动8个字节,2个int等8个字节
sizeof 可以取得一个类型的大小,按字节算
void* 不能加上偏移,因为void没有大小.
结合这些,应该可以帮助你分析语句的意义了.