结构体

**结构体的作用:**当需要表示一些复杂的信息,单个数据类型无法满足的时候使用。
**结构体的定义与使用:**结构体相当于一个变量的集合,就是把你所需要用到的变量放到一个指定的容器里面,当你用到的时候就可以从里面调用。结构体的定义就是定义函数一样,在main函数外面定义(如下图)。
定义结构体要在前面加上struct,之后就是结构体名称(abc这个结构体里面有三个变量值)。每个成员之间用分号分隔,结构体的尾部也要分号表示结束。使用的时候在main函数定义一个表示结构体的变量(16行),girl就是这个变量名称,后面带的三个参数分别是结构体里面三个变量的初始化。输出的时候要注意的是,girl表示调用这个结构体的变量名称,它代表的是abc这个结构体,相当于代言人或者中介之类的角色,所以使用的时侯要说明是谁介绍你来的(18行,前面加上变量名称),这样人家才知道你是来干嘛的。
结构体
**结构体数组:**结构体数组的定义和普通数组定义差不多,(下图)所初始化的是数组第一个元素,往后没有初始化的默认为0.当然也可以像普通数组一样全都给它赋值,只是它每个数组元素都有三个元素。
结构体
**结构体指针:**结构体指针访问主要分为两种。一种通过指针解引访问,也就相当于用结构体直接访问(如上两图)。另一种就是用指针直接访问,这种是通过指针找到结构体所在的位置,然后访问里面的内容。这两种所达到的目的都是一样的,没有什么区别。
结构体
**结构体的嵌套:**结构体可以像for循环一样进行嵌套。使用时,调用B里面的变量A1,而A1就是另一个结构体,也就是说A1里面有三个参数,初始化的时候也是三个都要初始化。输出的时候就要加上A1,因为A1代表的是一个结构体,而不是结构体里面的变量,所以不能像普通变量一样直接使用。
结构体
意注事项:结构体的传递方式是值传递,不能像数组或者指针那样进行地址传递。要是在函数中使用可以用指针、引用别名或者直接返回所需的值。
(1)指针用法:
结构体
(2)引用别名用法:
结构体
**(3)直接返回值:**把值传进函数所得的结果和main函数里值没关系的,所以我们需要把函数里的值返回并赋给main函数,这样就可以达到和指针、引用相同的目的.

结构体