[转载:答错了]取结构体变量的便宜量.

Posted 德克斯特的实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转载:答错了]取结构体变量的便宜量.相关的知识,希望对你有一定的参考价值。

运行下列C++代码,输出什么?

struct Point3D

{

        int x;

        int y;

        int z;

};

 

int _tmain(int argc, _TCHAR* argv[])

{

        Point3D* pPoint = NULL;

        int offset = (int)(&(pPoint)->z);

 

        printf("%d", offset);

        return 0;

}

 

答案:输出8。由于在pPoint->z的前面加上了取地址符号,运行到此时的时候,会在pPoint的指针地址上加z在类型Point3D中的偏移量8。由于pPoint的地址是0,因此最终offset的值是8

&(pPoint->z)的语意是求pPoint中变量z的地址(pPoint的地址0z的偏移量8,并不需要访问pPoint指向的内存。只要不访问非法的内存,程序就不会出错。

以上是关于[转载:答错了]取结构体变量的便宜量.的主要内容,如果未能解决你的问题,请参考以下文章

分享几个实用的代码片段(第二弹)

分享几个实用的代码片段(第二弹)

你能答对这道 Go 题目吗?超过 80% 的人都答错了...

结构体共用体枚举博客转载

在C代码中将结构体变量作为参数传递效率忒低

面试官:private 方法可以被代理吗?别答错了。。