- 数据类型
整型、浮点、字符、数组、指针、字符串、结构体、枚举、联合体
- 分配内存malloc()和free()
- (1)5种存储类
这5种存储类有一个共同之处:在决定了使用哪一存储类之后,就自动决定了作用域和存储时期。
当然还有另一种选择,使用库函数来分配和管理内存。
malloc()
double * ptd;
ptd=(double *)malloc(30*sizeof(double));
free()
double * temp=(double *)malloc(n*sizeof(double));
...
free(temp);
calloc()
long * newmem;
newmem=(long *)calloc(100,sizeof(long));
这个函数接受两个参数,都应是无符号的整数。第一个参数是所需内存单元的数量,第二个参数是每个单元以字节计的大小。
- 文件输入与输出
(1)标准I/O
fopen()
第一个参数是要打开的文件名;更确切地说,是包含该文件名地字符串的地址。第二个参数是用于指定文件打开模式的一个字符串。
例如,打开pihao.txt
FILE * fp;
fp=fopen("pihao.txt","r");
程序成功地打开一个文件后,fopen()函数返回一个文件指针,其他I/O函数用这个指针来指定该文件。文件指针是一种指向FILE的指针;FILE是stdio.h中定义的一种派生类型。
如果不能打开文件,fopen()函数返回空指针。如果fp为NULL,程序将退出。磁盘已满、文件名非法、存取权限不够或者硬件问题等都会导致fopen()函数执行失败。
getc()
putc()
这两个函数的工作方式和函数getchar()与putchar()非常相似,不同之处在于您需要告诉getc()和putc()函数它们要使用的文件
fclose()
fclose(fp)函数关闭由指针fp指定的文件,同时根据需要刷新缓冲区。
fprintf()、fscanf()
工作方式与printf()和scanf()相似,区别在于前两者需要第一个参数来指定合适的文件
fprintf(stdout,"Can't open\"words\"file.\n");
while(fscanf(fp,"%s",words)==1)
{ puts(words);
...
}
根据《C Primer Plus(第五版)》这本书的学习,这一章节极为混乱!!!!
下来再找书将这部分理解透彻吧!