2007年5月21日星期一

地址相减的定义

c/c++ 中对地址的减法定义如下:
int offset = (p2 - p1) / sizeof(*p1);

表达的意思是一个数组中,两个不同位置的间隔. 见下面的一个例子:
int *p1 = (int*)0x100;
int *p2 = (int*) 0x109;

int offset = p2 - p1;
int length = (int)p2 - (int)p1;

则offset为2, 而length为9.

没有评论: