采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师, 请问在Score这个联合体的size为什么是8个字节?按理说score里有一个double型占8个字节,一个char占一个字节,那应该是总共占16个字节才对。但我看你的代码演示里确实占了8个字节,这个char的值写到了分配给double值的8个字节区域。那如果这个double值足够大,刚好占满8个字节呢,那char的值岂不是要被覆盖掉?
注意,这里的Score是union,它的空间是共享的,以最大类型的尺寸为准。不会出现你说的覆盖,因为你只会在一种目的上用它。比如你计分时或者按照字符类型计,或者按照浮点型计,不会同一时刻两种都用到。
明白了,关键是这一点:在任意时刻,联合中只能有一个数据成员可以有值。当给联合中某个成员赋值之后,该联合中的其它成员就变成未定义状态了。
基本是这样。
登录后可查看更多问答,登录/注册
一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维
1.3k 12
1.2k 12
1.3k 10
1.2k 9
1.0k 9