#include <stdio.h>
struct TestT
{
int adata;
char cdata;
char fdata;
};
union TestU
{
int adata;
char cdata;
int fdata;
};
int main()
{
struct TestT t1;
union TestU t2;
printf("结构体的大小是:%d\n",sizeof(t1));
printf("联合体的大小是%d\n",sizeof(t2));
t1.adata=10;
t1.cdata='a';
t1.fdata='r';
printf("t1.adata的地址是%p,值是%d\n",&t1.adata,t1.adata);
printf("t1.cdata的地址是%p,值是%c\n",&t1.cdata,t1.cdata);
printf("t1.fdata的地址是%p,值是%c\n",&t1.fdata,t1.fdata);
puts("\ndone");
t2.adata=20;
t2.cdata='Q';
t2.fdata=9;//共用体注意值的覆盖问题。
printf("t2.adata的地址是%p,值是%d\n",&t2.adata,t2.adata);
printf("t2.cdata的地址是%p\n",&t2.cdata);
printf("t2.fdata的地址是%p\n",&t2.fdata);
return 0;
}
C语言,联合体共用体概念引入
最新推荐文章于 2026-06-20 16:52:53 发布
本文详细介绍了C语言中结构体和联合体的使用,展示了它们在内存分配上的差异,以及注意的值覆盖问题。通过实例演示了sizeof运算符在计算结构体和联合体大小的应用。


152

被折叠的 条评论
为什么被折叠?



