C语言程序概述(六)

来源:互联网 发布:时时彩开奖平台源码 编辑:程序博客网 时间:2024/05/02 16:30

C程序第11章:结构体与共用体
一、结构体类型和结构体变量
1、结构体类型声明
结构体——是用户根据自己的需要定义的一种构造类型数据 。
结构体由若干不同类型的数据项组成,构成结构体的各个数据项称为结构体成员。
这里写图片描述
(1)“student”为结构体名:用户定义的合法标识符。可省:无名结构体。(2)struct是关键字,不能省略(3){ }中是组成该结构体的成员。成员类型可以是基本型或构造型(4)末尾分号不能省
注意:声明结构体类型struct student并没有为分配空间。结构体类型声明只是定义了一种新的类型,类似int等类型。它是对结构的组织形式的描述,系统还没分配实际内存空间。
只有定义结构体类型的变量,系统才分配内存空间。
2、结构体变量定义
有了类型后,就可以定义变量。三种形式:
(1)先定义(声明)结构体类型再定义变量名
这里写图片描述
(2)定义结构体类型的同时定义结构体变量
这里写图片描述
(3)直接定义结构体变量(即不出现结构体名)
这里写图片描述
3、结构体变量需要的内存——等于结构体变量所有成员占内存之和
注意:
声明结构体类型与声明结构体变量概念不同。结构体类型:不分配内存; 结构体变量:分配内存结构体类型:不能赋值、存取、运算; 结构体变量:可赋值、存取、运算
4、结构体变量初始化——就是为成员赋初值。根据前面结构体变量定义形式的三种情况,
初始化的形式也有三种。
形式一:
这里写图片描述
形式二:
这里写图片描述
形式三:
这里写图片描述
6、结构体变量使用
(1)引用规则:一般情况下结构体变量不能整体引用,只能引用变量成员
引用方式: 结构体变量名.成员名
注意:结构体中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。成员名可以与程序中的变量名相同,二者不代表同一对象。
7、结构体类型的嵌套——结构体成员本身又是一个结构体类型。
结构体嵌套时逐级引用(只能对最低级的成员进行赋值或存取以及运算)
二、结构体数组
1、定义结构体数组:
每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员项。也有两种方法:
(1)定义结构体类型后定义数组
(2)定义结构体类型时定义数组
2、结构体数组的初始化
结构数组[n]={{初值表1},{初值表2},…,{初值表n}};
3、 结构体数组元素的使用
结构体数组元素类似于一个结构体变量,只能对结构体数组元素的成员进行输入、输出或其它基本操作
三、用指针访问结构体
1、 指向结构体变量的指针
设一个指针变量,用来指向一个结构体变量,此时该指针变量值是结构体变量的起始地址。
注意:三者等价:(*结构体指针名). 成员名=结构体变量名.成员名=结构体指针名->成员名
2、 用结构体变量和指向结构体的指针作函数参数
将一个结构体变量的值传递给另一个函数,有3个方法:
(1)用结构体变量的成员作参数。
(2) 用结构体变量作实参。
(3) 用指向结构体变量(或数组元素)的指针作实参,将结构体变量(或数组元素)的地址传给形参。
四、链表概述——链表是将若干个数据项按一定的原则连接起来的表。
连接原则:(1)前一个结点指向下一个结点;(2)只有通过前一个结点才能找到下一个结点。此为单向链表特征,下均指单向链表。

0 0
原创粉丝点击