大伙们这个代码输出 2的原因是啥
class A {
public:
A ():m_c(0) {}
void virtual test() {}
private:
short m_c;
};
int main(){
int sum[] = {1, 2, 3, 4, 5};
int a = *(int*)((A*)(&sum + 1) - 1);
cout << a;
}
public:
A ():m_c(0) {}
void virtual test() {}
private:
short m_c;
};
int main(){
int sum[] = {1, 2, 3, 4, 5};
int a = *(int*)((A*)(&sum + 1) - 1);
cout << a;
}
全部评论
问题是谁会写这种代码,闲得逆天代码,不过又设计虚函数表指针,字节对齐之类的,可以sizeof 分析下A内存分布,和将数组按照字节展开,两者结合起来分析下,不过也为啥现实意义,那个那** 会这样写,除了面试的会问这种二比问题
相关推荐
07-08 12:20
郑州大学 材料工程师 码农索隆:看我帖子https://www.nowcoder.com/discuss/764127692135370752,神州信息那个2B董成杰,我离职的时候,直接干他干了一仗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-28 17:41
清华大学 Java 点赞 评论 收藏
分享