构造类型是由内置类型创建的类型,在定义时它的内存大小受用户控制。
什么是内置类型?内置类型是程序本身提供给我们去使用的,可以直接拿来用。
举个最简单的例子:
int x , y ;
这个类型定义了两个变量,分别是 x 和 y ,那么 int 是什么?int 是类型,这个类型就是整型,在内存中占四个字节,它是已经就有的,是定义好的,我们可以直接拿来使用。
而构造类型的大小和类型,是有用户确定的。例如,使用的数组长度(大小)以及类型是由用户控制的,所以数组就是构造类型的一种。
数组是相同的数据类型的一个集合,可以是int、float、double、char数据类型的集合,也可以是相同结构体类型、相同共用体类型的一个集合。
我们可以这样定义一个数组,比如:
int arr[10]={1};
在这里,我们对一个数组进行了初始化,初始化是在定义数组的时候,给数组里面的元素整体赋值。注意:只有在定义数组的时候,才能对数组进行整体赋值。那数组里面元素,在初始化的时候,第一个元素(arr[0])获得了初值1,其余的数组元素默认为0 。
我们先来谈谈结构体的结构,结构体是由很多成员组成的一个类型,这里面的成员,可以是各种类型的变量、数组、结构体,还可以是接下来要讲的共用体、枚举。
我们可以这样定义一个结构体,比如:
struct Node1
{
int id_1;
char name_1[20];
double score_1;
};
在这里,struct Node1 是我们的自定义的一种结构体类型,整型变量id_1、字符数组name_1、双精度浮点型score_1都是struct Node1的成员。注意,struct Node1是一个我们定义的结构体类型,不是一个结构体变量。我们可以通过这个类型来定义一个变量。
我们再来看另一种形式的结构体:
struct Node2
{
int id_2;
char name_2[20];
double score_2;
}a1,a2[3];
这种形式的结构体,比上一种多了a1、a2[3],a1是struct Node1类型的变量,a2[3]是struct Node1类型的数组。
共用体和结构体是类似的,只不过,在内存的结构上有所区别。共用体是所有的成员共用一片内存,而结构体的成员有专属于各自的内存。定义的方式是一样的,关键字不同,用的是union
union Node1
{
int id_1;
char name_1[20];
double score_1;
};
枚举类型的定义格式:
enum 枚举类型名{符号1,符号2,...};
//符号 是 枚举常量
枚举类型的定义:
enum Weekday{sun,mon,tue,wed,thu,fri,sat};
枚举的元素会有默认的值,第一个元素默认的值是0,往后依次加1
在编程中,仅有计算机系统内置的语言,肯定是不够的。不同的编程项目需要不同的数据以及新的类型来实现一些特定的功能。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!