《数据结构练习-结构体与联合体|《数据结构练习-结构体与联合体 》代码详解
首先明确共用体(又称联合体)的概念:
所有成员都在同一段内存中存放,起始地址一样,并且同一时刻只能使用其中的一个成员变量。
即可以理解为,所有成员同时附上值。(不是很明确)
上代码:
union Mat{
int f[3][3],f11;
struct{
int ff[4],f22,fff[3],f33;
};
}matrix;
上组测试样例,其实就很清晰了
文章图片
很明显,当我们输入第一个值的时候,共用体的成员f它的[0][0]位置被附上了值1
因为f11和f都是共用体里的成员,所以f11也是1.
然后结构体也是一个共用体成员,所以我们的结构体中的第一个元素也就是ff[0]被附上了1,但是注意结构体内部其他成员还没有值,因为内部是结构体。
然后就是类似的推下去了。
由于我们要得到主对角线的总和。
很明显f11存f[1][1]的值,f22存f[2][2]的值,f33存f[3][3]的值。
那么f11就放在结构体外让它成为第一个值,注意的是它有值之后就不会再被输入的值赋值,这也是共用体的特效。
然后我们在结构体内部定义一个ff[4]大小的数组。
让f[1][1],f[1][2],f[1][3],f[2][1]存储在里面,这样f[2][2]就能存储在ff中了。
f[3][3]同理。
【《数据结构练习-结构体与联合体|《数据结构练习-结构体与联合体 》代码详解】最终测试结果:
文章图片
推荐阅读
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 《跨界歌手》:亲情永远比爱情更有泪点
- 诗歌:|诗歌: 《让我们举起世界杯,干了!》
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- 人间词话的智慧
- 《一代诗人》37期,生活,江南j,拨动心潭的一泓秋水
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- 广角叙述|广角叙述 展众生群像——试析鲁迅《示众》的展示艺术