读书人

帮忙看看这个语句解决办法

发布时间: 2012-03-18 13:55:39 作者: rapoo

帮忙看看这个语句
以下这个语句求地址偏移量(深度探索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没有大小.

结合这些,应该可以帮助你分析语句的意义了.

读书人网 >C++

热点推荐