- 关于函数指针:
函数指针的声明方法为:
函数类型 (标志符指针变量名) (形参列表);
注1:“函数类型”说明函数的返回类型,“(标志符指针变量名 )”中的括号不能省,若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:
int func(int x); /* 声明一个函数 */
void (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。函数名称也是一个指针,但是它是死的,但是函数指针却是活的,可以根据需要让他指向别的函数。但是要求这种函数的参数类型必须保持一致,因此在工作中,原来想着有很多的冗余形参,这一点并不能直接删除,而要保持一致性,这样在加载的过程中才不会出问题。总之在使用的时候一定要十分谨慎。指向函数的指针变量是不能够进行++或者–运算的。指针函数是指返回值是指针的函数,即本质是一个函数。 - 文件操作中经常用到的exit(0)需要包含<stdlib.h>,另外一个指向文件的指针pointer,可以用feof(pointer)来判断是否遇到输入文件的结束标志,结束时该值为1.
- 关于如何读写字符串:
函数名 调用形式 功能 返回值
fgets fgets(str,n,fp) 从fp指向的文件读入一个 读成功,返回
长度为(n-1)的字符串,存放 地址str,失败则返回NULL
到字符数组str中
fputs fputs(str,fp) 把str所指向的字符串写到 输出成功,返回0;
文件指针变量fp所指向的 否则返回非0值
文件中。 - fgets和fputs这两个函数的功能类似于gets和puts函数,只是gets和puts以终端为读写对象,而fgets和fputs函数以指定的文件作为读写对象。
- 在C语言中,路径本来应该写成F:\C语言学习程序,但是C语言把"\“作为转义字符的标志,所以在写路径的时候,往往需要写成F:\\C语言学习程序,也就是多一个”\"。
- 对文件也可以进行格式化的输入输出,所要用到的函数是fprintf和fscanf,他们的调用方式为:
fprintf(文件指针,格式字符串,输出列表);
fscanf(文件指针,格式字符串,输入列表);
例如:fprintf(fp,"%d,%6.2f",i,f);作用就是将int型变量i和float型变量f的值按照%d和%6.2f的格式输出到fp指向的文件中。
用fprintf和fscanf函数对磁盘文件读写,使用方便,容易理解,但是由于在输入时要将文件的ASCII码转换为二进制形式在保存在内存变量中,在输出时又要将内存中的二进制形式转换成字符,要花费较多的时间。因此在内存与磁盘频繁交换数据的情况下,最好不用fprintf和fscanf函数,用fread和fwrite函数进行二进制的读写。
C语言编程小知识三
猜你喜欢
转载自blog.csdn.net/yunmao2882/article/details/84957336
今日推荐
周排行