北京网站设计公司有哪些,平面设计需要什么基础,电商网站建设课程,推广普通话宣传海报一、构造数据类型
构造数据类型#xff1a;用户自己建立的数据类型#xff08;自定义数据类型#xff09;
C语言中的自定义数据类型有#xff1a;数组类型、结构体类型、共用体类型和枚举类型。
1.1. 结构体
C语言允许用户根据需要自己建立的由不同类型数据组成的组合型…一、构造数据类型
构造数据类型用户自己建立的数据类型自定义数据类型
C语言中的自定义数据类型有数组类型、结构体类型、共用体类型和枚举类型。
1.1. 结构体
C语言允许用户根据需要自己建立的由不同类型数据组成的组合型的数据类型我们把它称之为结构体struct。结构体能根据用户需要来更方便的存储各种各样的信息。
用法 struct 结构体名{ 结构成员}
定义一个Student结构体
struct Student{
int ID;
char name[10];
float score;
}
给结构体赋值按照顺序赋值给结构体成员是一一对应的。不能用a.ID1;这种方式赋值,但是在strcpy函数中可以用实例.成员的方式赋值比如strcpy(a.name,张三);
Student a{1,张三60.1};
访问结构体里的成员用实例.成员名引用
a.ID
1.2 给类型取别名
必须是类型可以给构造数据类型也可以给基本数据类型取别名
如typedef int 整型 //相当于宏本质是替换 。把int类型替换为“整型”类型
typedef struct Hero {}hero; //给构造数据类型 Hero取别名叫hero
//定义结构体的时候如果没写结构名那么用typedef给这个结构体取别名
typedef struct{ int aint b}STT //别名叫STT
//定义结构体的时候没写结构名也没有用typedef但是要在}后写标识符那么标识符就是我们定义的该结构的变量。
struct {int a; int b;}s1,s2,s3[10];
1.3 结构体的内存计算方法
结构体内存对齐标准以该结构体中最大的基本数据类型所占的内存进行对齐。比如
struct One{int a;int b;char c}; //应该是9个字节但是因为最大的数据类型为4个字节所以实际为12字节。
struct Two{int a;char b[10];float c}; //分配的是20个字节44444
struct Three{double a;int b;char c[10]}; //分配的是24个字节b的后面4个字节会给c的前4个字节用只需要分配3个8字节
struct Four{int a;char b[10];char c;double d}//分配的是24个字节最长的是8a分配8个b前4个放在a后面再给b一个8放6个剩2个c放在b剩的后面d再分配8个存。
struct Five{char a;int b;char c[10];double d;}; //分配的是24个字节
2. 共同体
2.1 什么是共用体
共用体关键字union
有时候想用同一段内存单元存放不同类型的变量。如把一个整型变量、浮点型变量和字符型变量放在同一个内存单元中它们在内存中所占字节数不同但是共用同一段内存地址也就是共用体了。也就是所有数据成员共用同一段内存的数据类型称为共用体也称其为联合体。
共用体和结构体的声明、定义和成员变量引用的语法是类似的只不过关键字不一样以及所占内存大小有区别而已。