大伙们这个代码输出 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内存分布,和将数组按照字节展开,两者结合起来分析下,不过也为啥现实意义,那个那** 会这样写,除了面试的会问这种二比问题
相关推荐
2025-11-18 18:24
北京理工大学珠海学院 嵌入式软件工程师
秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态 点赞 评论 收藏
分享