C语言基础与提高5

来源:互联网 发布:数控车床计算软件下载 编辑:程序博客网 时间:2024/05/18 03:44


C语言基础与提高5

声明一个结构体类型的一般形式为:struct    结构体名   {成员表列};


定义结构体类型变量:
(1)先声明结构体类型再定义变量名
例如:struct  student        student1, student2;

(2)在声明类型的同时定义变量

这种般形式为:
 struct 结构体名

  成员表列;
 }变量名表列;


在定义了结构体变量以后,当然可以引用这个变量。但应遵守以下规则:  
(1)不能将一个结构体变量作为一个整体进行输入和输出。

(2) 可以引用结构体变量成员的地址,也可以引用结构体变量的地址。

结构体成员的表现形式:
结构体变量.成员名
(*p).成员名
p->成员名,其中->称为指向运算符。


用结构体建立链表:
struct student
{
 int num;
float score;
 struct student *next ;
};

其中成员num和score用来存放结点中的有用数据(用户需要用到的数据),next是指针类型的成员,它指向struct student类型数据(这就是next所在的结构体类型)


处理动态内存所需的函数
库函数提供动态地开辟和释放存储单元的
有关函数:
1)malloc函数: void *malloc(unsigned int size);
 
其作用:是在内存的动态存储区中分配一个长度为size的连续空间。

返回值:是一个指向分配域起始地址的指针(类型为void)。
如果此函数未能成功地执行(例如内存空间不足),则返回空指针(NULL)。

(2) calloc函数 :void *calloc(unsigned n,unsigned size);

作用:在内存的动态存储区中分配n个长度为size的连续空间。
返回值:一个指向分配域起始地址的指针;
如果分配不成功,返回NULL。

用calloc函数可以为一维数组开辟动态存储空间,n为数组元素个数,每个元素长度为Size。
(3) free函数:    void free(void *p);
作用:释放由p指向的内存区,使这部分内存区能被其他变量使用。、
p是最近一次调用calloc或malloc函数时返回的值。
free函数无返回值。


共用体
使几个不同的变量共占同一段内存的结构
称为 “共用体”类型的结构。
定义共用体类型变量的一般形式为:
union 共用体名
{成员表列
}变量表列;


共用体和结构体的比较:
结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。
共用体变量所占的内存长度等于最长的成员的长度。


枚举:将变量的值一一列举出来,变量的值只限于列举
出来的值的范围内。
申明枚举类型用enum

enum weekday{sun,mon,tue,wed,thu,fri,sat}; 
定义变量:enum weekday workday,week-day;

enum{sun,mon,tue,wed,thu,fri,sat}workday;
变量值只能是sun到sat之一 。


用typedef声明新的类型名来代替已有的类型名。
声明INTEGER为整型:   typedef int INTEGER

声明结构类型
typedef struct{
int month;int day;int year;
}DATE;

用typedef定义类型的方法:
① 先按定义变量的方法写出定义体(如:int i)。
② 将变量名换成新类型名(例如:将i换成COUNT)。
③ 在最前面加typedef
④ 然后可以用新类型名去定义变量。

原创粉丝点击