《C语言程序课件ppt-C程序设计第9章用户自己建立数据类型.pdf》由会员分享,可在线阅读,更多相关《C语言程序课件ppt-C程序设计第9章用户自己建立数据类型.pdf(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第第第9 9章章章章 用用用用户户户户自自自自己己己己建建建建立立立立数数数数据据据据类类类类型型型型9.1 定定义义和和使使用用结结构构体体变变量量9.2 使使用用结结构构体体数数组组9.3 结结构构体体指指针针9.4 用用指指针针处处理理链链表表9.5 共共用用体体类类型型9.6 使使用用枚枚举举类类型型9.7 用用typedef声声明明新新类类型型名名9.1 9.1 定定定定义义义义和和和和使使使使用用用用结结结结构构构构体体体体变变变变量量量量9.1.1 自自己己建建立立结结构构体体类类型型9.1.2 定定义义结结构构体体类类型型变变量量9.1.3 结结构构体体变变量量的的初初始始化
2、化和和引引用用9.1.1 9.1.1 自自自自己己己己建建建建立立立立结结结结构构构构体体体体类类类类型型型型用用户户自自己己建建立立由由不不同同类类型型数数据据组组成成的的组组合合型型的的数数据据结结构构,它它称称为为结结构构体体。例例如如,一一个个学学生生的的学学号号、姓姓名名、性性别别、年年龄龄、成成绩绩、家家庭庭地地址址等等项项,是是属属于于同同一一个个学学生生的的,因因此此组组成成一一个个组组合合数数据据,如如student_1的的变变量量,反反映映它它们们之之间间的的内内在在联联系系。9.1.1 9.1.1 自自自自己己己己建建建建立立立立结结结结构构构构体体体体类类类类型型型型s
3、truct Student int num; char name20; char sex; int age; float score; char addr30; ;u由由程程序序设设计计者者指指定定了了一一个个结结构构体体类类型型struct Student。u它它包包括括num,name,sex,age,score,addr等等不不同同类类型型的的成成员员。9.1.1 9.1.1 自自自自己己己己建建建建立立立立结结结结构构构构体体体体类类类类型型型型声声明明一一个个结结构构体体类类型型的的一一般般形形式式为为: struct 结结构构体体名名 成成员员表表列列 ; 类类型型名名 成成员员名
4、名;9.1.1 9.1.1 自自自自己己己己建建建建立立立立结结结结构构构构体体体体类类类类型型型型说说明明:(1) 可可以以根根据据需需要要设设计计出出多多种种结结构构体体类类型型,例例如如struct Teacherstruct Workerstruct Date等等结结构构体体类类型型u各各自自包包含含不不同同的的成成员员9.1.1 9.1.1 自自自自己己己己建建建建立立立立结结结结构构构构体体体体类类类类型型型型说说明明:(2)结结构构体体成成员员可可以以属属于于另另一一个个结结构构体体类类型型。 struct Date int month; int day; int year; ;
5、struct Stu int num;char name20; char sex;int age; struct Date birthday; char addr30; ;numnamesexagebirthdayaddrmonthdayyear9.1.2 9.1.2 定定定定义义义义结结结结构构构构体体体体类类类类型型型型变变变变量量量量1. 先先声声明明结结构构体体类类型型,再再定定义义该该类类型型变变量量struct Student int num; char name20; char sex; int age; float score; char addr30; ;struct Stu
6、dent student1,student2;结结构构体体类类型型名名结结构构体体变变量量名名 9.1.2 9.1.2 定定定定义义义义结结结结构构构构体体体体类类类类型型型型变变变变量量量量2.在在声声明明类类型型的的同同时时定定义义变变量量struct Student int num; char name20; char sex; int age; float score; char addr30; student1,student2;9.1.2 9.1.2 定定定定义义义义结结结结构构构构体体体体类类类类型型型型变变变变量量量量3. 不不指指定定类类型型名名而而直直接接定定义义结结构构体
7、体类类型型变变量量struct int num; char name20; char sex; int age; float score; char addr30; student1,student2;9.1.2 9.1.2 定定定定义义义义结结结结构构构构体体体体类类类类型型型型变变变变量量量量(1) 结结构构体体类类型型与与结结构构体体变变量量是是不不同同的的概概念念,不不要要混混同同。只只能能对对变变量量赋赋值值、存存取取或或运运算算,而而不不能能对对一一个个类类型型赋赋值值、存存取取或或运运算算。在在编编译译时时,对对类类型型是是不不分分配配空空间间的的,只只对对变变量量分分配配空空间
8、间。(2) 结结构构体体类类型型中中的的成成员员名名可可以以与与程程序序中中的的变变量量名名相相同同,但但二二者者不不代代表表同同一一对对象象。(3) 结结构构体体变变量量中中的的成成员员可可以以单单独独使使用用,它它的的作作用用与与地地位位相相当当于于普普通通变变量量。9.1.3 9.1.3 结结结结构构构构体体体体变变变变量量量量的的的的初初初初始始始始化化化化和和和和引引引引用用用用 例例9.1 把把一一个个学学生生的的信信息息(包包括括学学号号、姓姓名名、性性别别、住住址址)放放在在一一个个结结构构体体变变量量中中,然然后后输输出出这这个个学学生生的的信信息息。#include int
9、 main() struct student long int num; char name20; char sex; char addr20; a=10101,Li Lin,M,123 Beijing Road; printf(NO.:%ldnname:%snsex:%cnaddress:%sn, a.num,a.name,a.sex,a.addr); return 0;#include int main() struct Student long int num; char name20; char sex; char addr20; a=10101,“Li Lin”,M, “123 Be
10、ijing Road”; a.num=10010; 对对 printf(“%sn”,a); 不不对对 #include int main() struct Student long int num; char name20; char sex; char addr20; a=10101,“Li Lin”,M, “123 Beijing Road”; struct Student b; b=a; 对对 b.num+; 对对 #include int main() struct Student long int num; char name20; char sex; char addr20; a=
11、10101,“Li Lin”,M, “123 Beijing Road”; scanf(%ld,&a.num); 对对 printf(%o,&a); 对对 scanf(“%ld,%s,%c,%sn”,&a); 错错 #include int main() struct Date int month; int day; int year; ; struct Stu int num;char name20; char sex;int age; struct Date birthday; char addr30; a,b; a.birthday.month=12; 对对 a.age=10; b.ag
12、e=9; 对对 sum=a.age+b.age; 对对 例例9.2 输输入入两两个个学学生生的的学学号号、姓姓名名和和成成绩绩,输输出出成成绩绩较较高高学学生生的的学学号号、姓姓名名和和成成绩绩。#include int main() struct stu int num; char name20; float score; stu1,stu2; scanf(%d%s%f,&stu1.num,stu1.name,&stu1.score); scanf(%d%s%f,&stu2.num,stu2.name,&stu2.score); printf(The higher score is:n);
13、if (stu1.scorestu2.score) printf(%d %s %6.2fn,stu1.num,stu1.name, stu1.score); else if (stu1.scorestu2.score) printf(%d %s %6.2fn,stu2.num,stu2.name, stu2.score); else printf(%d %s %6.2fn,stu1.num,stu1.name, stu1.score);printf(%d %s %6.2fn,stu2.num,stu2.name, stu2.score); return 0; 9.2 9.2 使使使使用用用用结
14、结结结构构构构体体体体数数数数组组组组9.2.1 定定义义结结构构体体数数组组9.2.2 结结构构体体数数组组的的应应用用举举例例9.2.19.2.1定定定定义义义义结结结结构构构构体体体体数数数数组组组组 例例9.3 有有3个个候候选选人人,每每个个选选民民只只能能投投票票选选一一人人,要要求求编编一一个个统统计计选选票票的的程程序序,先先后后输输入入被被选选人人的的名名字字,最最后后输输出出各各人人得得票票结结果果。#include #include struct Person char name20; int count; leader3=“Li”,0,“Zhang”,0,“Sun”,0
15、; 全全局局的的结结构构体体数数组组name countleader0Li0Zhang0Sun0int main() int i,j; char leader_name20; for (i=1;i=10;i+) scanf(“%s”,leader_name); for(j=0;j3;j+) if(strcmp(leader_name,leaderj.name)=0) leaderj.count+; for(i=0;i3;i+) printf(%5s:%dn“,leaderi.name, leaderi.count); return 0;说说明明:(1)定定义义结结构构体体数数组组一一般般形形式
16、式是是 struct 结结构构体体名名 成成员员表表列列 数数组组名名数数组组长长度度; 先先声声明明一一个个结结构构体体类类型型,然然后后再再用用此此类类型型定定义义结结构构体体数数组组: 结结构构体体类类型型 数数组组名名数数组组长长度度; 如如: struct Person leader3; (2)对对结结构构体体数数组组初初始始化化的的形形式式是是在在定定义义数数组组的的后后面面加加上上:初初值值表表列列; 如如:struct Person leader3= Li,0,Zhang,0,Fun,0; 9.2.2 9.2.2 结结结结构构构构体体体体数数数数组组组组的的的的应应应应用用用用
17、举举举举例例例例 例例9.4 有有n个个学学生生的的信信息息(包包括括学学号号、姓姓名名、成成绩绩),要要求求按按照照成成绩绩的的高高低低顺顺序序输输出出各各学学生生的的信信息息。#include struct student int num;char name20;float score; ; int main() struct student stu5= 10101,Zhang,78,10103,Wang,98.5, 10106,Li,86, 10108,Ling,73.5, 10110,Fun,100 ; struct student temp; const int n=5; int i
18、,j,k; printf(The order is:n); for(i=0;in-1;i+) k=i; for(j=i+1;jstuk.score) k=j; temp=stuk;stuk=stui;stui=temp; for(i=0;in;i+) printf(%6d %8s %6.2fn, stui.num,stui.name,stui.score); return 0;9.3 9.3 结结结结构构构构体体体体指指指指针针针针9.3.1 指指向向结结构构体体变变量量的的指指针针9.3.2 指指向向结结构构体体数数组组的的指指针针9.3.3 用用结结构构体体变变量量和和结结构构体体变变量量
19、的的指指针针作作函函数数参参数数9.3.1 9.3.1 指指指指向向向向结结结结构构构构体体体体变变变变量量量量的的的的指指指指针针针针指指向向结结构构体体对对象象的的指指针针变变量量既既可可以以指指向向结结构构体体变变量量,也也可可以以用用来来引引用用结结构构体体数数组组中中的的元元素素。指指针针变变量量的的基基类类型型必必须须与与结结构构体体变变量量的的类类型型相相同同。例例如如: struct Student *pt; 例例9.5 通通过过指指向向结结构构体体变变量量的的指指针针变变量量输输出出结结构构体体变变量量中中成成员员的的信信息息。#include #include int ma
20、in() struct student long num;char name20;char sex;float score; ; struct student stu_1; struct student * p; p=&stu_1; stu_1.num=10101; strcpy(stu_1.name,Li Lin); stu_1.sex=M; stu_1.score=89.5; printf(No.:%ldnname:%snsex:%cnscore:%5.1fn, stu_1.num,stu_1.name,stu_1.sex,stu_1.score); printf(“nNo.:%ldnna
21、me:%snsex:%cnscore:%5.1fn, (*p).num,(*p).name,(*p).sex, (*p).score); return 0;说说明明:u为为了了使使用用方方便便和和直直观观,C语语言言允允许许把把(*p).num用用p-num来来代代替替u(*p).name等等价价于于p-nameu如如果果p指指向向一一个个结结构构体体变变量量stu,以以下下等等价价: stu.成成员员名名(如如stu.num) (*p).成成员员名名(如如(*p).num) p-成成员员名名(如如p-num)9.3.2 9.3.2 指指指指向向向向结结结结构构构构体体体体数数数数组组组组的的
22、的的指指指指针针针针 例例9.6 有有3个个学学生生的的信信息息,放放在在结结构构体体数数组组中中,要要求求输输出出全全部部学学生生的的信信息息。#include struct student int num;char name20;char sex;int age;struct student stu3= 10101,Li Lin,M,18, 10102,Zhang Fun,M,19, 10104,Wang Min,F,20;int main() struct student *p; printf( No. Name sex agen); for (p=stu;pnum, p-name, p
23、-sex, p-age); return 0;9.3.3 9.3.3 用用用用结结结结构构构构体体体体变变变变量量量量和和和和结结结结构构构构体体体体变变变变量量量量的的的的指指指指针针针针作作作作函函函函数数数数参参参参数数数数将将一一个个结结构构体体变变量量的的值值传传递递给给另另一一个个函函数数,有有3个个方方法法。(1) 用用结结构构体体变变量量的的成成员员作作参参数数。u用用法法和和用用普普通通变变量量作作实实参参是是一一样样的的,属属于于“值值传传递递”方方式式。u应应当当注注意意实实参参与与形形参参的的类类型型保保持持一一致致。(2) 用用结结构构体体变变量量作作实实参参。u用用
24、结结构构体体变变量量作作实实参参时时,将将结结构构体体变变量量所所占占的的内内存存单单元元的的内内容容全全部部按按顺顺序序传传递递给给形形参参,形形参参也也必必须须是是同同类类型型的的结结构构体体变变量量。u在在函函数数调调用用期期间间形形参参也也要要占占用用内内存存单单元元。这这种种传传递递方方式式在在空空间间和和时时间间上上开开销销较较大大。u在在被被调调用用函函数数期期间间改改变变形形参参(也也是是结结构构体体变变量量)的的值值,不不能能返返回回主主调调函函数数。u一一般般较较少少用用这这种种方方法法。(3)用用指指向向结结构构体体变变量量(或或数数组组元元素素)的的指指针针作作实实参参
25、,将将结结构构体体变变量量(或或数数组组元元素素)的的地地址址传传给给形形参参。例例9.7 有有n个个结结构构体体变变量量,内内含含学学生生学学号号、姓姓名名和和3门门课课程程的的成成绩绩。要要求求输输出出平平均均成成绩绩最最高高的的学学生生的的信信息息(包包括括学学号号、姓姓名名、3门门课课程程成成绩绩和和平平均均成成绩绩)。#include #define N 3struct student int num;char name20; float score3;float aver; ;void input(struct student stu);struct student max(str
26、uct student stu);void print(struct student stu);int main() struct student stuN,*p=stu; input(p); print(max(p); return 0;void input(struct student stu) int i; printf(请请输输入入各各学学生生的的信信息息:学学号号、姓姓名名、三三门门课课成成绩绩:n); for(i=0;iN;i+) scanf(%d %s %f %f %f, &stui.num,stui.name,&stui.score0, &stui.score1,&stui.s
27、core2); stui.aver=(stui.score0+ stui.score1+stui.score2)/3.0; struct student max(struct student stu) int i,m=0; for(i=0;istum.aver) m=i; return stum;void print(struct student stud) printf(n成成绩绩最最高高的的学学生生是是:n); printf(学学号号:%dn姓姓名名:%sn三三门门课课成成绩绩:%5.1f,%5.1f,%5.1fn平平均均成成绩绩:%6.2fn, stud.num,stud.name,st
28、ud.score0, stud.score1,stud.score2,stud.aver); 以以上上3个个函函数数的的调调用用,情情况况各各不不相相同同:u调调用用input函函数数时时,实实参参是是指指针针变变量量,形形参参是是结结构构体体数数组组,传传递递的的是是结结构构体体元元素素的的地地址址,函函数数无无返返回回值值。u调调用用max函函数数时时,实实参参是是指指针针变变量量,形形参参是是结结构构体体数数组组,传传递递的的是是结结构构体体元元素素的的地地址址,函函数数的的返返回回值值是是结结构构体体类类型型数数据据。u调调用用print函函数数时时,实实参参是是结结构构体体变变量量,
29、形形参参是是结结构构体体变变量量,传传递递的的是是结结构构体体变变量量中中各各成成员员的的值值,函函数数无无返返回回值值。9.4 9.4 用用用用指指指指针针针针处处处处理理理理链链链链表表表表9.4.1 什什么么是是链链表表9.4.2 建建立立简简单单的的静静态态链链表表9.4.3 建建立立动动态态链链表表9.4.4 输输出出链链表表9.4.19.4.1 什什什什么么么么是是是是链链链链表表表表链链表表是是一一种种常常见见的的重重要要的的数数据据结结构构它它是是动动态态地地进进行行存存储储分分配配的的一一种种结结构构head12491249A135613561475B1475C1021102
30、1D0头头指指针针各各结结点点地地址址不不连连续续各各结结点点含含有有两两个个部部分分表表尾尾struct Student int num; float score; struct Student *next; a,b,c;1010189.510103901010785a结结点点b结结点点c结结点点a.next=&b;b.next=&c;numscorenext9.4.2 9.4.2 建建建建立立立立简简简简单单单单的的的的静静静静态态态态链链链链表表表表 例例9.8 建建立立一一个个如如图图所所示示的的简简单单链链表表,它它由由3个个学学生生数数据据的的结结点点组组成成,要要求求输输出出各各
31、结结点点中中的的数数据据。 解解题题思思路路: head=&a; a.next=&b; b.next=&c; c.next=NULL;head1010189.510103901010785a结结点点b结结点点c结结点点numscorenextNULL#include struct student int num;float score;struct student *next; ;int main() struct student a,b,c,*head,*p; a. num=10101; a.score=89.5; b. num=10103; b.score=90; c. num=10107
32、; c.score=85; head=&a; a.next=&b; b.next=&c; c.next=NULL; p=head; do printf(%ld %5.1fn,p-num,p-score); p=p-next; while(p!=NULL); return 0;9.4.3 9.4.3 建建建建立立立立动动动动态态态态链链链链表表表表所所谓谓建建立立动动态态链链表表是是指指在在程程序序执执行行过过程程中中从从无无到到有有地地建建立立起起一一个个链链表表,即即一一个个一一个个地地开开辟辟结结点点和和输输入入各各结结点点数数据据,并并建建立立起起前前后后相相链链的的关关系系。例例9.9
33、 写写一一函函数数建建立立一一个个有有3名名学学生生数数据据的的单单向向动动态态链链表表。#include #include #define LEN sizeof(struct student)int n; struct student long num;float score;struct student *next; ;struct student *creat(void); int main() struct student *pt; pt=creat(); printf(nnum:%ldnscore:%5.1fn, pt-num,pt-score); return 0;struct s
34、tudent *creat(void) struct student *head,*p1,*p2; n=0; p1=p2=(struct student *)malloc(LEN); scanf(%ld,%f,&p1-num,&p1-score); head=NULL; while(p1-num!=0) n=n+1; if(n=1) head=p1; else p2-next=p1; p2=p1; p1=(struct student*)malloc(LEN); scanf(%ld,%f,&p1-num,&p1-score); p2-next=NULL; return(head);9.4.4
35、9.4.4 输输输输出出出出链链链链表表表表例例9.10 编编写写一一个个输输出出链链表表的的函函数数print。void print(struct Student *p) printf(nThese %d records are:n,n); if(p!=NULL) do printf(%ld %5.1fn“,p-num,p-score); p=p-next; while(p!=NULL);9.5 9.5 共共共共用用用用体体体体类类类类型型型型9.5.1 什什么么是是共共用用体体类类型型9.5.2 引引用用共共用用体体变变量量的的方方式式9.5.3 共共用用体体类类型型数数据据的的特特点点什
36、什什什么么么么是是是是共共共共用用用用体体体体类类类类型型型型有有时时想想用用同同一一段段内内存存单单元元存存放放不不同同类类型型的的变变量量。使使几几个个不不同同的的变变量量共共享享同同一一段段内内存存的的结结构构,称称为为 “共共用用体体”类类型型的的结结构构。1000100110021003字字符符ch整整 型型 变变 量量 i实实 型型 变变 量量 f定定义义共共用用体体类类型型变变量量的的一一般般形形式式为为:union 共共用用体体名名 成成员员表表列列 变变量量表表列列; “共共用用体体”与与“结结构构体体”的的定定义义形形式式相相似似,但但它它们们的的含含义义是是不不同同的的。
37、结结构构体体变变量量所所占占内内存存长长度度是是各各成成员员占占的的内内存存长长度度之之和和,每每个个成成员员分分别别占占有有其其自自己己的的内内存存单单元元。而而共共用用体体变变量量所所占占的的内内存存长长度度等等于于最最长长的的成成员员的的长长度度。只只有有先先定定义义了了共共用用体体变变量量才才能能引引用用它它,但但应应注注意意,不不能能引引用用共共用用体体变变量量,而而只只能能引引用用共共用用体体变变量量中中的的成成员员。例例如如:前前面面定定义义了了a,b,c为为共共用用体体变变量量,下下面面的的引引用用方方式式是是正正确确的的: a.i a.ch a.f 例例如如:union Da
38、ta int i; char ch; float f; a,b,c; 例例如如:union Data int i; char ch; float f; ;union Data a,b,c; 共共用用体体类类型型数数据据的的特特点点:(1) 同同一一个个内内存存段段可可以以用用来来存存放放几几种种不不同同类类型型的的成成员员,但但在在每每一一瞬瞬时时只只能能存存放放其其中中一一个个成成员员,而而不不是是同同时时存存放放几几个个。(2)可可以以对对共共用用体体变变量量初初始始化化,但但初初始始化化表表中中只只能能有有一一个个常常量量。(3)共共用用体体变变量量中中起起作作用用的的成成员员是是最最后
39、后一一次次被被赋赋值值的的成成员员,在在对对共共用用体体变变量量中中的的一一个个成成员员赋赋值值后后,原原有有变变量量存存储储单单元元中中的的值值就就取取代代。(4) 共共用用体体变变量量的的地地址址和和它它的的各各成成员员的的地地址址都都是是同同一一地地址址。(5) 不不能能对对共共用用体体变变量量名名赋赋值值,也也不不能能企企图图引引用用变变量量名名来来得得到到一一个个值值。(6) 以以前前的的C规规定定不不能能把把共共用用体体变变量量作作为为函函数数参参数数,但但可可以以使使用用指指向向共共用用体体变变量量的的指指针针作作函函数数参参数数。C99允允许许用用共共用用体体变变量量作作为为函
40、函数数参参数数。(7) 共共用用体体类类型型可可以以出出现现在在结结构构体体类类型型定定义义中中,也也可可以以定定义义共共用用体体数数组组。反反之之,结结构构体体也也可可以以出出现现在在共共用用体体类类型型定定义义中中,数数组组也也可可以以作作为为共共用用体体的的成成员员。9.6 9.6 使使使使用用用用枚枚枚枚举举举举类类类类型型型型如如果果一一个个变变量量只只有有几几种种可可能能的的值值,则则可可以以定定义义为为枚枚举举类类型型。所所谓谓“枚枚举举”就就是是指指把把可可能能的的值值一一一一列列举举出出来来,变变量量的的值值只只限限于于列列举举出出来来的的值值的的范范围围内内。声声明明枚枚举
41、举类类型型用用enum开开头头。例例如如:enum Weekdaysun,mon,tue,wed,thu,fri,sat;u声声明明了了一一个个枚枚举举类类型型enum Weekdayu然然后后可可以以用用此此类类型型来来定定义义变变量量enum Weekday workday,weekend;workday=mon; 正正确确weekend=sun; 正正确确weekday=monday; 不不正正确确枚枚举举元元素素枚枚举举变变量量说说明明:(1) C编编译译对对枚枚举举类类型型的的枚枚举举元元素素按按常常量量处处理理,故故称称枚枚举举常常量量。不不要要因因为为它它们们是是标标识识符符(有
42、有名名字字)而而把把它它们们看看作作变变量量,不不能能对对它它们们赋赋值值。例例如如: sun=0; mon=1; 错错误误(2) 每每一一个个枚枚举举元元素素都都代代表表一一个个整整数数,语语言言编编译译按按定定义义时时的的顺顺序序默默认认它它们们的的值值为为0,1,2,3,4,5u在在上上面面定定义义中中,sun的的值值为为0,mon的的值值为为1,sat的的值值为为6u如如果果有有赋赋值值语语句句: workday=mon; 相相当当于于workday=1;u也也可可以以人人为为地地指指定定枚枚举举元元素素的的数数值值,例例如如: enum Weekdaysun=7,mon=1,tue,
43、wed,thu,fri,satworkday,week_end; 指指定定枚枚举举常常量量sun的的值值为为7,mon为为1,以以后后顺顺序序加加1,sat为为6。(3) 枚枚举举元元素素可可以以用用来来作作判判断断比比较较。枚枚举举元元素素的的比比较较规规则则是是按按其其代代表表的的整整数数来来进进行行比比较较的的。9.7 9.7 用用用用typedeftypedef声声声声明明明明新新新新类类类类型型型型名名名名1.简简单单地地用用一一个个新新的的类类型型名名代代替替原原有有的的类类型型名名typedef int Integer; typedef float Real;则则int i,j;
44、 float a,b;等等价价于于:Integer i,j; Real a,b;2.命命名名一一个个简简单单的的类类型型名名代代替替复复杂杂的的类类型型表表示示方方法法(1)命命名名一一个个新新的的类类型型名名代代表表结结构构体体类类型型: typedef struct int month; int day; int year; Date;Date birthday; (2) 命命名名一一个个新新的的类类型型名名代代表表数数组组类类型型typedef int Num100; Num a; (3)命命名名一一个个新新的的类类型型名名代代表表一一个个指指针针类类型型typedef char *String; String p; (4)命命名名一一个个新新的的类类型型名名代代表表指指向向函函数数的的指指针针类类型型typedef int (*Pointer)(); Pointer p1,p2;