C语言高级编程及实例剖析

上传人:飞*** 文档编号:39928321 上传时间:2018-05-21 格式:DOCX 页数:4 大小:13.16KB
返回 下载 相关 举报
C语言高级编程及实例剖析_第1页
第1页 / 共4页
C语言高级编程及实例剖析_第2页
第2页 / 共4页
C语言高级编程及实例剖析_第3页
第3页 / 共4页
C语言高级编程及实例剖析_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言高级编程及实例剖析》由会员分享,可在线阅读,更多相关《C语言高级编程及实例剖析(4页珍藏版)》请在金锄头文库上搜索。

1、C 语言高级编程及实例分析语言高级编程及实例分析第一章:内存管理第一章:内存管理c 语言对程序精心编译时,将函数中命令、语句编译成相应序列的机器指令代码,放在代语言对程序精心编译时,将函数中命令、语句编译成相应序列的机器指令代码,放在代码段;将已初始化的数据,如已赋值的全局变量、静态局部变量等,放在数据段;将未初码段;将已初始化的数据,如已赋值的全局变量、静态局部变量等,放在数据段;将未初始化的数据放在始化的数据放在 BBS 段内;将临时数据,如函数调用时传递的参数、局部变量、返回调用段内;将临时数据,如函数调用时传递的参数、局部变量、返回调用时的地址等放在栈段内;而对一些动态变化的数据,如在

2、程序执行中建立的一些数据结构,时的地址等放在栈段内;而对一些动态变化的数据,如在程序执行中建立的一些数据结构,如链表,动态数组等,则放在堆结构中如链表,动态数组等,则放在堆结构中 。 内存管理系统是操作系统的重要部分。内存管理系统是操作系统的重要部分。C 语言中使用语言中使用 malloc()函数和()函数和 free()函数来分()函数来分配和释放内存。再次释放已经释放的内存和释放未被分配的内存都会造成系统的崩溃。配和释放内存。再次释放已经释放的内存和释放未被分配的内存都会造成系统的崩溃。1.1.1PC 存储器结构存储器结构 PC 机存储器结构分为主存储器、外存储器和高速缓存几个部分。机存储

3、器结构分为主存储器、外存储器和高速缓存几个部分。1.1.4 内存编译模式内存编译模式编译模式是指如何在内存中放置程序代码及数据,如何分配堆栈,并确认占用的内存大小编译模式是指如何在内存中放置程序代码及数据,如何分配堆栈,并确认占用的内存大小及如何存取它们,当指定内存模式以后,语言编译程序将按事先选择好的内存模式编译组及如何存取它们,当指定内存模式以后,语言编译程序将按事先选择好的内存模式编译组织程序。织程序。C 语言提供了语言提供了 6 种编译模式,分别是:微模式,小模式,紧凑模式,中模式,大种编译模式,分别是:微模式,小模式,紧凑模式,中模式,大模式和巨模式。模式和巨模式。1.1.5 堆概念

4、和结构堆概念和结构堆是一种动态的存储结构(存储链表,动态数组等)堆是一种动态的存储结构(存储链表,动态数组等) ,实际上就是数据段的自由存储区。,实际上就是数据段的自由存储区。1.1.6 堆管理函数堆管理函数1.malloc()函数()函数用来分配内存。函数原型为用来分配内存。函数原型为 void *malloc(unsigned size)如:如:int *p;P= (int*)malloc(sizeof(int) ) ;如果要分配如果要分配 100 个个 int 型的空间时,表示为:型的空间时,表示为: int *p= (int*)malloc(sizeof(int) ) ;2.free(

5、)函数()函数用来释放内存。函数原型为用来释放内存。函数原型为 void *free(指针变量)(指针变量)如:如:int *p=(int *)malloc(4) ;*p=100;free(p) ;3.realloc()函数()函数用来重调空间的大小,函数声明为:用来重调空间的大小,函数声明为:void *realloc(void *block,int size) ;block 是指向要扩张或缩小的内存空间的指针。是指向要扩张或缩小的内存空间的指针。Size 指定新的大小。指定新的大小。4.calloc()函数()函数用来分配一个能容纳用来分配一个能容纳 n 个元素,每个元素长度为个元素,每个

6、元素长度为 size 的内存空间。函数声明为的内存空间。函数声明为 void *calloc(size_t nelem,size_t elsize) 。该函数将分配一个容量为。该函数将分配一个容量为 nelem *size 大小的空间,大小的空间,并用并用 0 初始化该内存区域,即每个地址装入初始化该内存区域,即每个地址装入 0.该函数将返回一个指向分配空间的指针。如该函数将返回一个指向分配空间的指针。如果没有空间可用,则返回果没有空间可用,则返回 NULL 指针。若在大数据模式下建立远堆,则可用指针。若在大数据模式下建立远堆,则可用 farmalloc 函数。函数。1.2.2 函数剖析函数剖

7、析1 函数函数 init_Heap()()实现了初始化内存分配程序的功能实现了初始化内存分配程序的功能2 函数函数 My_Free()()完成函数释放内存的功能完成函数释放内存的功能3函数函数 Allocate()()实现了分配按指定大小分配内存块的功能实现了分配按指定大小分配内存块的功能第第 3 章章:文件高级操作:文件高级操作字符型(文本型)文件和二进制文件字符型(文本型)文件和二进制文件有什么区别?有什么区别?标准库函数标准库函数文件打开(文件打开(fopen)函数原型函数原型 FILE *fopen(char *filename,char *mode)文件关闭(文件关闭(fclose)

8、函数原型函数原型 int *fclose(FILE *fp)字节(字符)读写函数字节(字符)读写函数 fgetc 和和 fputc字符串读写函数字符串读写函数 fgets 和和 fputs数据块读写函数数据块读写函数 fread 和和 fwrite格式会读写函数格式会读写函数 fscanf 和和 fprint字符串读函数字符串读函数 fgetsChar *fgets(char *s,int n,FILE *filepointer);字符串写函数字符串写函数 fputsInt fputs(char *s,FILE *filepointer)数据块读函数数据块读函数 freadUnsigned f

9、read(void *ptr,unsigned size,unsigned n,FILE *filepointer)数据块写函数数据块写函数 fwriteUnsigned fwrite(void *ptr,unsigned size,unsigned n,FILE filepointer)格式化读格式化读 fscanfInt scanf(FILE *filepointer,const char *format,文件定位操作文件定位操作rewind 函数函数函数原型:函数原型:void rewind(FILE *filepointer);功能:将功能:将 filepointer 所指向的文件的位

10、置指针重新置回到文件的开头所指向的文件的位置指针重新置回到文件的开头fseek 函数函数函数原型:函数原型:int fseek(FILE *fp,long offset,int whence)功能:功能:whence 基准点;基准点; offset 从基准点开始移动的字节数;从基准点开始移动的字节数;ftell 函数函数函数原型:函数原型:long ftell(FILE *filepointer);功能:返回文件的当前位置;功能:返回文件的当前位置;feof 函数函数原型:原型:int feof(FILE *fp);功能:判断功能:判断 fp 所代表的文件是否结束所代表的文件是否结束Stdin 标准输入(键盘)标准输入(键盘)Stdout 标准输出(显示器)标准输出(显示器)Stdaux 标准辅助输入输出(异步串行口)标准辅助输入输出(异步串行口)Stdprn 标准打印(打印机)标准打印(打印机)Stderr 标准错误输出(显示器)标准错误输出(显示器)简单的来说,+i 和 i+,在单独使用时,就是 i=i+1。而 a = +i,相当于 i=i+1; a = i;而 a = i+,相当于 a = i; i=i+1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号