收藏 分享(赏)

C语言程序设计第十三讲PPT课件.ppt

上传人:Facebook 文档编号:3722716 上传时间:2018-11-16 格式:PPT 页数:24 大小:423KB
下载 相关 举报
C语言程序设计第十三讲PPT课件.ppt_第1页
第1页 / 共24页
C语言程序设计第十三讲PPT课件.ppt_第2页
第2页 / 共24页
C语言程序设计第十三讲PPT课件.ppt_第3页
第3页 / 共24页
C语言程序设计第十三讲PPT课件.ppt_第4页
第4页 / 共24页
C语言程序设计第十三讲PPT课件.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、结构体定义,struct 结构体类型名 类型1 成员列表; 类型2 成员列表; 注意:这里定义的是数据类型,定义之后的产品为数据类型,同Int double char之类的类型。 完整的类型名为:struct 结构体类型名。,结构体定义举例,#include struct student char name10;char number19;int score; main() struct student a5,b=“张三“,“21010219930323563x“,86;a2=b;printf(“%s,%s,%d,%cn“,a2.name,a2.number,a2.score,a2.numbe

2、r 5); ,定义同时定义结构体名,#include struct student char name10;char number19;int score; st1,st2; main() struct student a5,b=“张三“,“21010219930323563x“,86;a2=b;st1=b;printf(“%s,%s,%d,%cn“,a2.name,a2.number,a2.score,a2.number 5); ,定义结构体同时定义变量,定义结构体同时定义变量的情况下,可以不写结构体名。但如果不写结构体名,在定义结束后便无法在定义该类型的结构体变量了。 struct cha

3、r name10;char number19;int score; st1,st2;,用宏定义来代替结构体类型名,由于结构体类型名非常的长,所以可以用宏定义来替换成较短的名称以便使用。 #include #define ST struct student struct student char name10;char number19;int score; ; main() ST a5,b=“张三“,“21010219930323563x“,86;a2=b;printf(“%s,%s,%d,%cn“,a2.name,a2.number,a2.score,a2.number 5); ,用type

4、def给结构体起别名,#include typedef struct student char name10;char number19;int score; ST; main() ST a5,b=“张三“,“21010219930323563x“,86;a2=b;printf(“%s,%s,%d,%cn“,a2.name,a2.number,a2.score,a2.number 5); ,结构体变量的引用,结构体变量在定义的同时赋初值可以整体赋值。但在定义之后便不可以整体赋值了,需要对其成员单个赋值。引用的时候可以整体给另外一个同类型的结构体变量整体赋值,或者引用其成员进行计算或赋值。 引用

5、方法为:变量名.成员名,结构体指针,#include typedef struct student char name10;char number19;int score; ST; main() ST a5,b=“张三“,“21010219930323563x“,86,*p=a;a2=b;printf(“%s,%s,%d,%cn“,(p+2)-name,(p+2)-number,(p+2)-score,(p+2)-number 5); ,malloc,常用的内存管理函数,存在于stdlib.h和malloc.h中。主要有三个函数: malloc(size):在内存中分配一块长度为size字节的

6、连续区域。使用方法为: (类型说明符 *)malloc(size) 其值为首地址,类型为类型说明符类型的指针。Size是一个无符号整数。,calloc,在内存动态存储区中分配n块长度为size字节的连续区域。 用法: (类型说明符 *)calloc(n,size),返回值是首地址。,free,释放ptr所指向的一块内在空间。Ptr是一个任意类型的指针变量,它指向被释放区域的首地址。被释放的区域应是malloc或calloc函数所分配的区域。,真题读程序,#include #include #include main() char *p;int i; p=(char *)malloc(sizeo

7、f(char)*20); strcpy(p,“welcome“); for(i=6;i=0;i-)putchar(*(p+i); printf(“n“);free(p);,共用体,定义方法为: Union 共用体类型名 类型1 分量列表;类型2 分量列表; 共用体是所有分量共用一块内存空间。无论给哪个分量赋值,都写入整个这块内存空间;无论引用哪个分量,都从这块内存空间中读取。,链表,链表是一种特殊的结构体。其内部成员有是指向本类型指针。例如:#include typedef struct link int data;struct link *next; ST; main() ST a,b,c,

8、d,*head,*p;head= ,文件,在之前学习的知识中,输入输出都是通过键盘和屏幕显示完成的,无法长时间保存。如果想要长时间保存,需要存储于文件中。 文件分类详见教材206页。,文件类型指针,C语言无法直接操作其它文件,只能通过指向文件的指针来实现对文件的操作。 文件指针定义的格式为: FILE *指针名; 例如: FILE *fp;,文件打开函数,fopen() 使用方法: 文件指针=fopen(“文件名”,“打开方式”); 注意:文件名正常要求是完整路径,如果不是完整路径,便一定是和原程序在同一目录下。,打开方式,文件关闭函数,Fclose(文件指针名); 关闭一个文件,例如: fc

9、lose(fp);,文件读函数,fread(buffer,size,count,文件指针); 将文件指针所指向的文件中的连续的数据读出到文件外的指定位置。 Buffer:从文件中读出的数据的要存放的地址,通常是一个指针,指向某一片内存空间。 Size:一次读出的一个数据块的字节数。 Count:连续读出数据的次数。 如:freak(p,4,3,fp);,文件写函数,Fwrite(brffer,size,count,文件指针); 同文件读函数。,文件结束测试函数,Feof(文件指针); 测试文件是否结束。如果结束了返回1,否则返回0.,文件指针定位函数,Fseek(文件指针,位移量,起始点); 让文件指针在文件内移动。,文件输入输出,fscanf(文件指针,格式控制串,输入项地址表); fprintf(文件指针,格式控制串,输出项列表); 用法同scanf和printf,不同的是接收是从文件指针所指的文件中读数据而非屏幕,输出是写到文件指针所指的文件中去而非屏幕。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报