转自:http://www.cnblogs.com/malecrab/p/5572119.html

1. 数据成员指针

对于普通指针变量来说,其值是它所指向的地址,0表示空指针。

而对于数据成员指针变量来说,其值是数据成员所在地址相对于对象起始地址的偏移值,空指针用-1表示。例:

理解数据成员指针、函数成员指针

代码示例:

理解数据成员指针、函数成员指针
struct X {
    int a;
    int b;
};
#define VALUE_OF_PTR(p)     (*(long*)&p)
int main() {
    int X::*p = 0;  // VALUE_OF_PTR(p) == -1
    p = &X::a;      // VALUE_OF_PTR(p) == 0
    p = &X::b;      // VALUE_OF_PTR(p) == 4
    return 0;
}
理解数据成员指针、函数成员指针

相关文章: