首页 > 试题广场 >

下面程序输出结果为() #include ...

[单选题]
下面程序输出结果为()
#include <stdio.h>
#include <stdlib.h>
class A {
};
int main() {
    printf("%d\n", sizeof(class A));
    return 0;
}



  • 0
  • 1
  • 4
  • 8
当类不包含任何成员的时候,大小本该是0,但是为了便于区分,大小是1
编辑于 2019-06-23 14:42:24 回复(1)
空类的大小原本是0,但是为什么实际上是1,主要的一个中心思想是在强调:任何相同类的不同对象应该拥有不同的地址
发表于 2020-05-22 22:36:10 回复(1)
C++标准中规定,任何不同的对象不能拥有相同的内存地址。 如果空类大小为0,当我们声明一个这个类的对象数组,那么数组中的每个对象都拥有了相同的地址,这显然是违背标准的。
发表于 2023-05-17 15:24:25 回复(0)
网上常见的解释是,如果空类大小为0,可能会使得两个不同对象拥有相同内存。还是不太理解底层什么原理。
发表于 2019-11-20 21:34:56 回复(2)
在C语言中,空类的大小为1字节。这是因为C语言规定,每个对象至少占用一个字节的空间,确保每个对象都有自己的地址。因此,即使一个类中没有成员变量,也至少要占用一个字节的空间。
发表于 2023-04-02 10:42:14 回复(0)
空类虽然什么都没有,但至少存在,空间至少为1
发表于 2022-04-12 13:33:28 回复(0)
空类的大小原本是0,但是为什么实际上是1,主要的一个中心思想是在强调:任何相同类的不同对象应该拥有不同的地址。
发表于 2020-07-26 21:15:22 回复(1)
空类的大小为1
发表于 2023-04-25 18:47:38 回复(0)
b
发表于 2020-07-16 10:22:42 回复(0)

空类,强制大小为1

发表于 2020-04-12 10:33:20 回复(0)