c语言库函数使用手册 c语言常用库函数使用方法( 七 )


1.结构体类型定义
结构体类型的形式为:
struct结构体类型名
{ 数据类型成员名1;
...
数据类型成员名n;
}
2.结构体变量的定义
结构体变量有三种定义形式:
(1)先定义结构体类型 , 后定义结构体变量 。
(2)定义结构体类型的同时定义结构体变量 。
(3)不定义结构体类型名 , 直接定义结构体变量 。
3.结构体变量的引用
(1)结构体变量的初始化:许多C版本规定对外部或静态存储类型的结构体变量可以进行初始化 , 而对局部的结构体变量则不可以,新标准C无此限制,允许在定义时对自动变量初始化 。
(2)结构体成员的引用:由于C语言一般不允许对结构体变量的整体引用 , 所以对结构体的引用只能是对分量的引用,结构体变量中的任一分量可以表示为:结构体变量名·成员名
4.结构体与数组
C语言中数组的成员可以是结构体变量,结构体变量的成员也可以是数组 。
结构体数组有三种定义形式:
(1)先定义结构体类型,后定义结构体数组 。
(2)定义结构体类型的同时定义结构体数组 。
(3)不定义结构体类型名,直接定义结构体变量 。
5.结构体与指针
一方面结构体变量中的成员可以是指针变量 , 另一方面也可以定义指向结构体的指针变量,指向结构体的指针变量的值是某一结构体变量在内存中的首地址 。
结构体指针的定义形式:struct结构体类型名*结构体指针变量名 。
由结构体指针引用结构体成员的方法
6.用指针处理链表
结构体的成员可以是指针类型 , 并且这个指针类型就是本结构体类型的,这样可以构造出一种动态数据结构-成为链表 。所谓动态数据就是指在编译时不能确定数据量的多少,而是在程序执行时才确定的数据,动态数据可以比较方便的进行数据插人或删除等操作 。
7.结构体与函数
结构体变量的成员可以作函数的参数、指向结构体变量的指针也可以作函数的参数 。虽然结构体变量名也可以作为函数的参数,将整个结构体变量进行传递,但一般不这样做,因为如果结构体的成员很多 , 或者有些成员是数组,则程序运行期间,将全部成员一个一个的传递,既浪费时间,又浪费空间 , 开销太大 。
8.结构体与共用体
结构体变量中的成员可以是共用体,共用体变量中的成员可以是结构体 。
共用体
为了节省存储空间,C语言允许将几种不同类型的数据存放在同一段内存单元 , 它们共用一个起始地址,称做共用体 。
1.共用体类型定义
union共用体类型名
{ 数据类型成员名1;
...
数据类型成员名n;
}
2.共用体变量定义
(1)先定义类型,后定义变量 。
(2)定义类型的同时定义变量 。
(3)不定义类型名,直接定义变量 。
3.共用体变量的引用
(1)共用体变量不能整体引用,只能引用其成员,形式为:共用体变量名·成员名
(2)共用体变量的成员不能初始化,因为它只能放一个数据 。
(3)共用体变量存放的数据是最后放入的数据 。
(4)共用体变量的长度是最大的成员的长度 。
(5)可以引用共用体变量的地址、各个成员的地址 , 它们都是同一个地址 。
(6)共用体变量不能当函数的参数或函数的返回值,但可以用指向共用体变量的指针作函数的参数 。
(7)共用体变量的成员可以是数组,数组的成员也可以是共用体变量 。
第十章 位运算知识点

推荐阅读