大伙们这个代码输出 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内存分布,和将数组按照字节展开,两者结合起来分析下,不过也为啥现实意义,那个那** 会这样写,除了面试的会问这种二比问题
点赞 回复 分享
发布于 2024-04-15 13:49 广东

相关推荐

不愿透露姓名的神秘牛友
12-10 15:21
华为-媒体院 算法 n*16 硕士985
点赞 评论 收藏
分享
迷茫的大四🐶:那你问他上班之后老实了没
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务