偶然看到一个求空指针的地址的代码
#include <iostream>
using namespace std;
struct AInfo {
int a;
int b;
int c;
};
int main()
{
AInfo* pinfo = NULL;
int value = (int)(&(pinfo->c));
cout << &(pinfo->b) << endl;
printf("%d", value);
system("pause");
return 0;
}
结果:
这里空指针的初始地址为0,然后它的第三个int型元素地址就是0+8。
因为NULL在编译的时候是自动替换成0的,所以该指针指向0.