FILE **file

请问c语言中,
FILE **file
应该怎么描述?是指向存储了一个file路径的指针的指针?谢谢!

FILE是在stdio.h定义的保存文件流信息的一个结构体类型(也可能是在其它文件中定义了另外的数据类型,然后通过typedef定义FILE)。注意它本身是类型而不是结构体名,所以FILE类型在字面上虽然不包含struct,但实际表示一个结构体。FILE变量中保存的不止是文件路径,还有缓冲区指针、读写方式等一系列信息(具体实现不一定相同)。一般使用FILE*类型变量表示文件句柄,通过它来访问FILE结构体,对文件进行操作。FILE**是指向FILE*的指针。
现在考虑定义一个基类型为FILE*的数组,那么它的数组名就是const FILE**类型的地址常量(经过传递后退化成FILE**指针):
FILE* file[100];
file[1]=fopen("1.txt","r+");
成功的话file[1]就是一个有效的文件指针。
那么,等效的方法:
FILE** file;
file=malloc(100*sizeof(FILE*));
接下来这里file的使用和上面相同(当然,使用完后需要free以免内存泄露),区别仅在于file是动态数组,指向的若干FILE*变量在堆上而不是栈上。
----
[原创回答团]

参考资料:原创

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-20
一个指向file指针的指针