sizeof一个空的结构体,返回什么 答:1。这是因为在 C++ 中,每个对象都必须有一个独一无二的地址,所以即使结构体中没有任何成员,它也必须占用至少 1 个字节的空间,以便能够被区分开来。 然而,我发现在有的编译器上如下代码是可以运行的: struct a{ char b[0]; }; int main(){ a b; cout << sizeof(b) << endl; printf("%p\n",&b); a c; cout << sizeof(c) << endl; printf("%p\n",&c); return 0; } 并且输出如下: 0 0x7fff2e25db36 0 0x7fff2e25db37 所以说即使sizeof返回为0了,仍然占用了1个字节的大小。我觉得很神奇,有大佬帮忙解释以下吗
3 1

相关推荐

不愿透露姓名的神秘牛友
01-07 07:54
已编辑
点赞 评论 收藏
分享
牛客网
牛客企业服务