大伙们这个代码输出 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;
}
全部评论
问题是谁会写这种代码,闲得逆天代码,不过又设计虚函数表指针,字节对齐之类的,可以sizeof 分析下A内存分布,和将数组按照字节展开,两者结合起来分析下,不过也为啥现实意义,那个那** 会这样写,除了面试的会问这种二比问题
点赞 回复 分享
发布于 04-15 13:49 广东

相关推荐

点赞 评论 收藏
分享
1 2 评论
分享
牛客网
牛客企业服务