Struct和Union的区别-创新互联

Struct:结构体

创新互联公司主营梨林网站建设的网络公司,主营网站建设方案,重庆App定制开发,梨林h5小程序定制开发搭建,梨林网站营销推广欢迎梨林等地区企业咨询

Union:联合体

 联合体是几个不同类型的变量共占一段内存(相互覆盖),因为是内存共享,所以它不能同时存放多个成员的值,而只能存放其中的一个值,就是最后赋予它的值,例如:

uni.a=3,uni.b=4.5,uni.c="A";赋值之后共享的同一块内存的值会被覆盖。对于union的不同成员赋值,将会对其它成员重写,原来成员的值就不存在了。union的内存大小为其内部所有成员的大值。

union UN
{
	char c;//1
	int a;//4
	float b;//4
	double g;
}uni;

void Test()
{
	uni.a = 4;
	uni.b = 1.5;
	uni.c = 'f';
	printf("%d\n",uni.a);
	printf("%f\n",uni.b);
	printf("%c\n",uni.c);
}
int main()
{
    Test();
    return 0;
}

 联合体的应用:大小端

#include<stdio.h>
union UN
{
	int i;
	char j;
}a;
void Test ()
{
	a.i=1;
	if(a.j==0)
	{
		printf("大端\n");
	}
	else 
	{
		printf("小端\n");
	}

}

int main()
{
	Test();
	return 0;
}

 结构体也是由多个不同的数据类型成员组成,但在任何同一时刻,结构体存放所有的成员变量,结构体的不同成员赋值是相互不影响的,它的内存也是按照大类型的倍数进行分配大小,但还是与顺序有关。

struct student
{
	char *name;//4
	int age;//4
	char *sex;//4
	char c;
	int num;//4
	double b;
}d;

void Test()
{
	struct student s;
	d.age=12;
	printf("%d\n",sizeof(d));
	printf("%d\n",d.age);
	printf("%s\n",d.sex);
}

int main()
{
	Test();
	return 0;
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

网页标题:Struct和Union的区别-创新互联
链接URL:https://www.cdcxhl.com/article32/phjpc.html

成都网站建设公司_创新互联,为您提供电子商务静态网站全网营销推广定制网站服务器托管定制开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设