自己对联合和结构体的认识

来源:互联网 发布:mac xcode安装教程 编辑:程序博客网 时间:2024/05/21 09:40

 对于联合和结构体我主要从三个方面去认识:

1,结构体的声明和联合的声明是一样的,仅仅只是关键字的不同,一个是struct一个是union;

2,结构体和联合体的访问,结构体中所有的成员变量都可以单独的访问,比如struct student{char name[256],int age; double Avg}struct student stu;我们可以单独对结构体中所有变量访问,stu.name,stu.age,stu.Avg。但是联合体却不能这样访问,他只能访问三个成员中的变量的一个,因为他在内存中是覆盖式的存储。

3,结构体和联合体的存储,结构体在内存的分配时会给每一个成员分配内存空间,但联合体只会分配所有成员中最大的一个,比如union student{char name[256],int age; double Avg},union student stu;strcpy(stu.name ,"xiaoming");stu.age = 12;stu.Avg = 12.89;则只能正确的访问到stu.Avg,因为stu.name和stu.age均被stu.Avg覆盖了 ,所以必须跟踪号当前union中所保存的值

0 0
原创粉丝点击