第8章用户自定义数据类型-详解.ppt
文本预览下载声明
链表的删除(3) /*参考源程序8-10*/ struct Ai *delete(struct Ai *head,int a) {struct Ai *prev,*pdel; if (head-a==a) {head=head-next; printf(“The first node is deleted.\n”);} else {if ((prev=findprev(head,a))!=NULL) {pdel-next=pdel-next; free(p); printf(“Node(which number is %d)is deleted.\n”,a);} else printf(“Node(which number is %d)is not found.\n”,a);} return(head);} 链表的删除(4) /*参考源程序7-9*/ void main() { struct Ai *head,*new,*p; int n=0; int a; head=create(); printf(“Input data for the node to be deleted:\n”); scanf(“%d”,a); head=delete(head,a); printf(“Atfer the node is deleted:\n); output(head); } §8.5 为已有数据类型创建新类型名(*) 功能:用自定义名字为已有数据类型命名 类型定义简单形式: typedef type my_name; 类型定义语句关键字 已有数据类型名 用户定义的类型名 说明: 1.typedef 没有创造新数据类型 2.typedef 是定义类型,不能定义变量 3.typedef 与 define 不同 define typedef 预编译时处理 编译时处理 简单字符置换 为已有类型命名 typedef定义类型步骤 ① 按定义变量或数组的方法先定义变量或数组,如:int i; ② 将变量名换成新类型名 如 int INTEGER; ③ 最前面加typedef 如 typedef int INTEGER; ④用新类型名定义变量 如 INTEGER i,j; 类型定义可嵌套 例 typedef struct club { char name[20]; int size; int year; }GROUP; typedef GROUP *PG; PG pclub; ? GROUP *pclub; ? struct club *pclub; GROUP为结构体类型 PG为指向GROUP的指针类型 The End * * 第八章 用户自定义数据类型 §8.1 结构体 结构体是一种构造数据类型。 用途:把相关的不同类型的数据组织成一个整体——用户根据需要自定义数据类型。 结构体类型定义: struct [结构体名] { 类型标识符 成员名; 类型标识符 成员名; ……………. }; 成员类型可以是 基本型或构造型 struct是关键字, 不能省略 合法标识符 可省:无名结构体 此处分号 ; 不能少 例 struct point { double x; double y; }; struct point A; 结构体变量的定义: 常用形式:先定义结构体类型,再定义结构体变量 一般形式: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }; struct 结构体名 变量名列表; 说明 结构体类型与结构体变量概念不同 类型:不分配内存; 变量:分配内存 类型:不能赋值、存取、运算; 变量:可以 结构体类型可嵌套定义。 结构体成员名与程序中变量名可相同,不会混淆 结构体类型及变量的作用域与生存期 例 struct point { double x;
显示全部