首页 > 试题广场 >

在Windows 32位操作系统中,假设字节对齐为4,对于一

[单选题]
在Windows 32位操作系统中,假设字节对齐为4,对于一个空的类A,sizeof(A)的值为()?
  • 0
  • 1
  • 2
  • 4
推荐
肯定不是A.0   C++对空类或者空结构体 ,对其sizeof操作时候,默认都是 1个字节.所以答案 选B
编辑于 2015-04-13 10:25:42 回复(3)
类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。所以,空类的sizeof为1,而不是0. 多重继承的空类的大小也是1.
发表于 2015-09-11 08:20:25 回复(0)
1、这是类为空的情况:


2、注意下面这种情况:

发表于 2016-05-05 15:00:43 回复(8)
题目里说的是类,也就是说这是一个C++的题......  
值得注意的是C++中空类和空结构体sizeof为1,而在C中空struct 的sizeof为0
最后建议吧下面本题知识点中的C语言去掉😑
编辑于 2021-10-23 14:08:39 回复(2)
字节对齐为4是迷惑人的,c中给空类就分配一个字节,若空类中含有数组a[0]则占用0字节
发表于 2017-08-30 15:59:38 回复(0)
对空类A运行sizeof(A)的结果为1,因为要有一个占位符,告诉计算机这里有东西,占一个位
发表于 2017-06-09 22:33:22 回复(0)
这跟编译器有关呀

发表于 2017-03-25 00:15:14 回复(0)







我觉得选了4的应该和我一样理解错了,这种设置对齐方式,只有在类里面含义的类型大于N时才生效,
也就是 也就是对齐为 min(N,函数内最长的字节) ,为空类时长度是1(加的字符),所以对齐还是1,个人见解,求大佬指点
发表于 2020-08-23 12:52:02 回复(0)
本来想选1,但是看到“字节对齐为4”后,果断选错了。。。
发表于 2019-12-05 23:19:21 回复(0)
字节对齐为4 : 数据占用了一个字节,但是你得给它们分四个字节。如果你现在的数据占用了五个字节,那你得给它们分八个字节。
编辑于 2016-06-27 09:25:31 回复(0)
A
【解析】
为了确保不同的对象会拥有不同的地址,所以类的大小不会为0字节。空类的大小为1字节
编辑于 2015-04-13 10:25:42 回复(0)
因为用类实例化一个对象的时候,为了使得每个对象之间做一个区分,所以需要有一Byte的位置来存储每个对象的id号,所以空类的sizeof是1。
发表于 2023-10-13 22:01:11 回复(0)
👿
发表于 2023-03-16 13:15:39 回复(0)
起到占位作用
发表于 2022-09-21 12:06:41 回复(0)
不是C语言练习吗,为什么是C++。。。
发表于 2022-09-07 23:17:28 回复(0)
空类的大小默认为1个字节
发表于 2022-06-17 08:52:21 回复(0)
C++对空类或者空结构体, 对其sizeof操作时候, 默认都是1个字节
发表于 2022-05-14 14:33:33 回复(0)
类为空的时候默认所占字节大小是1
发表于 2019-08-08 08:41:11 回复(0)
SMn头像 SMn
发表于 2017-08-16 11:20:10 回复(0)