Dict.CN 在线词典, 英语学习, 在线翻译

学海苦作舟,书山勤为径

留下点回忆

常用链接

统计

积分与排名

Denoise

English study

Web技术

数据压缩

一些连接

最新评论

一个指针类型强制转换

class B{
public:
 DWORD GetLen(){return i;}
 DWORD i ;
};
class A
{
public:
 DWORD GetLen(){return j;}
public:
 int j ;

};

 B b;
 b.i = 2;
 A * pA = (A *)&b;
 int j = pA->GetLen();

问j=?

posted on 2011-03-15 14:38 笨笨 阅读(1964) 评论(5)  编辑 收藏 引用 所属分类: 调试

评论

# re: 一个指针类型强制转换 2011-03-15 23:08 ths

2
  回复  更多评论   

# re: 一个指针类型强制转换 2011-03-16 08:49 Husiwa

显然是2,因为A和B的内存布局是一样的,
强制转换之后,A与B对象内存对象无差别
  回复  更多评论   

# re: 一个指针类型强制转换 2011-03-16 13:24 笨笨

@Husiwa
说的好。。。  回复  更多评论   

# re: 一个指针类型强制转换 2011-03-16 13:42 天堂的隔壁

理想的情况下,应该通不过者静态检查或者代码走读为好。  回复  更多评论   

# re: 一个指针类型强制转换 2011-03-17 07:38 千暮(zblc)

@天堂的隔壁
C/C++ 编译器是以内存分配为本位,类型和语法限制其次。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理