大伙们这个代码输出 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内存分布,和将数组按照字节展开,两者结合起来分析下,不过也为啥现实意义,那个那** 会这样写,除了面试的会问这种二比问题
相关推荐
04-14 19:08
南昌航空大学科技学院 C++
饼子吃到撑:现在就是学历大于一切了,尤其是应届生,你再厉害人家筛选按钮选择985双非直接完蛋,学历就是硬伤,公司肯定都想用优秀的人,但是不知道你到底优不优秀只能通过最原始的方法来筛选~学历, 点赞 评论 收藏
分享