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*变量在堆上而不是栈上。