第一章:内存管理。
c语言对程序精心编译时,将函数中命令、语句编译成相应序列的机器指令**,放在**段;将已初始化的数据,如已赋值的全局变量、静态局部变量等,放在数据段;将未初始化的数据放在bbs段内;将临时数据,如函数调用时传递的参数、局部变量、返**用时的地址等放在栈段内;而对一些动态变化的数据,如在程序执行中建立的一些数据结构,如链表,动态数组等,则放在堆结构中。
内存管理系统是操作系统的重要部分。c语言中使用malloc()函数和free()函数来分配和释放内存。再次释放已经释放的内存和释放未被分配的内存都会造成系统的崩溃。
1.1.1
pc存储器结构。
pc机存储器结构分为主存储器、外存储器和高速缓存几个部分。1.1.4内存编译模式。
编译模式是指如何在内存中放置程序**及数据,如何分配堆栈,并确认占用的内存大小及如何存取它们,当指定内存模式以后,语言编译程序将按事先选择好的内存模式编译组织程序。c语言提供了6种编译模式,分别是:微模式,小模式,紧凑模式,中模式,大模式和巨模式。
1.1.5堆概念和结构。
堆是一种动态的存储结构(存储链表,动态数组等),实际上就是数据段的自由存储区。1.1.6堆管理函数函数。
用来分配内存。函数原型为void *malloc(unsigned size)如:int *p;
p=(int*)malloc(sizeof(int));
如果要分配100个int型的空间时,表示为:int*p=(int*)malloc(sizeof(int));函数。
用来释放内存。函数原型为void *free(指针变量)如:int *p=(int *)malloc(4);
p=100;free(p);函数。
用来重调空间的大小,函数声明为:void *realloc(void *block,int size);block是指向要扩张或缩小的内存空间的指针。size指定新的大小。
函数。用来分配一个能容纳n个元素,每个元素长度为size的内存空间。函数声明为void*calloc(size_tnelem,size_telsize)。该函数将分配一个容量为nelem*size大小的空间,并用0初始化该内存区域,即每个地址装入0.
该函数将返回一个指向分配空间的指针。如果没有空间可用,则返回null指针。若在大数据模式下建立远堆,则可用farmalloc函数。
1.2.2函数剖析1函数init_heap()
实现了初始化内存分配程序的功能2函数my_free()完成函数释放内存的功能3函数allocate()
实现了分配按指定大小分配内存块的功能。
第三章:文件高级操作。
字符型(文本型)文件和二进制文件标准库函数。
文件打开(fopen)
函数原型file *fopen(char *filename,char *mode)
文件关闭(fclose)函数原型int *fclose(file *fp)
字节(字符)①字符串读函数fgets
char *fgets(char *s,int n,file *filepointer);②字符串写函数fputs
int fputs(char *s,file *filepointer)③数据块读函数fread
unsigned fread(void *ptr,unsigned size,unsigned n,file *filepointer)④数据块写函数fwrite
unsigned fwrite(void *ptr,unsigned size,unsigned n,file filepointer)
格式化读fscanf
int scanf(file *filepointer,const char *format,[&a,&b,..格式化写fprintf
int fprintf(file *filepointer,const char *format,[表达式列表,..
文件定位操作①rewind函数。
函数原型:void rewind(file *filepointer);
功能:将filepointer所指向的文件的位置指针重新置回到文件的开头②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;
c语言高级编程
c高级编程 责任编辑 admin 更新日期 2005 8 6 深入了解c语言 函数的参数传递和函数使用参数的方法 tangl 99 原作 关键字 c语言,汇编,生成,编译器 c语言生成的 在执行效率上比其它高级语言都高。现在让我们来看看c语言生成的 具体是什么样子的。当你看完本文对于c语言的了解一定...
C语言高级编程
基本信息。原书名 expert c programming原出版社 prentice hall ptr作者 美 peter van der linden译者 徐波。丛书名 c和c 经典著作 出版社 人民邮电出版社 isbn 9787115171801 上架时间 2008 2 2 出版日期 2008 ...
C语言高级编程实验指导书
实验。一 熟悉开发平台 常用工具。实验要求 熟练使用该节介绍的linux命令 使用vi创建 编辑 保存文件。实验平台 pc机 ubuntu 10.04 实验步骤 一 熟悉常用命令 1.man命名查看常用命令函数的具体用法。2.cd切换目录。3.ls命令查看目录内容。4.pwd命令查看当前路径。5.u...