用户自定义的数据类型及其扩展

1、结构体

结构体类型的通常格式:数组

struct 结构体名{成员列表};函数

结构体的优势

1.数据类型能够不所有一致spa

2.方便描述对象指针

3.结构体成员能够嵌套其余的结构体,描述事物更加贴切对象

2、定义结构体变量的三种方法

1.结构体类型名 结构体变量名;字符串

as:struct Student student1,student2;变量

2.在声明类型的时候同时定义变量数据类型

struct 结构体名{方法

成员表列数据

}变量名表列;

as:

struct Student{

..............

}student1,student2;

3.不指定类型名而直接定义结构体类型变量

//此种方法没有指定结构体名字,故,没法用这个结构体类型去定义其余变量

struct{

成员表列

}变量名表列;

3、对结构体变量里的成员进行赋值

结构体变量名.成员名

.的运算符的优先级最高,故,对student1.age++是对(student1.age++)进行自加运算,而不是对age进行运算

ps:strcmp字符串比较函数

2、结构体数组

定义结构体数组三种形式

1.struct 结构体名

{成员表列}数组名【数组长度】;

2.先声明一个结构体类型再用此类型定义结构体数组

结构体类型 数组名【数组长度】;

as:struct Person leader【3】;//leader是结构体数组名

3.对结构体数组的初始化,是在结构体数组定义的后面加上

={初始表列};

3、结构体指针

基本定义

结构体指针就是指向结构体变量的指针,该结构体变量的起始地址就是这个结构体变量的指针。

若是把一个结构体变量的起始地址存在一个指针变量中,那么该指针变量就是指向该结构体变量

指向结构体对象的指针变量既能够指向结构体变量,也能够指向结构体数组中的元素。指针变量的基类型必须与结构体变量的类型相同。

as:struct Student *pt;

(*pt)表示pt指向的结构体变量

(*pt).num表示pt指向的结构体变量中的成员num--------等价于pt->num

2、若是p指向一个结构体变量stu,有以下三种等价方法

1.stu.成员名(as:stu.num)

2.(星号p).成员名(如(星号p).num)

3.p->成员名(as:p->num)

4、结构体变量与结构体变量的指针作函数参数

将一个结构体变量的值传递给另外一个函数方法有三:

1.结构体变量的成员做参数------属于“值传递”

2.用结构体变量做实参------属于“值传递”-------开销大,值没法改变,故该方法不多用

3.用结构体变量(或数组元素)的指针做实参,将结构体变量的地址传给形参

相关文章
相关标签/搜索