fopen 会返回地址吗?

Ten*_*nko 1 c file

所以我声明了一个*f类型的指针FILE,现在我说该指针等于fopen("text.txt", "r")。那么既然指针存储的是地址,那么fopen返回的是文件的地址吗?

FILE *f;
f = fopen("text.txt","r");
Run Code Online (Sandbox Code Playgroud)

Emp*_*ian 5

fopen 是否返回文件的地址?

不,不存在“文件地址”这样的东西。

返回fopen的是一个指向动态分配的不透明结构的指针FILE,它描述了如何获取文件的内容。从某种意义上说,此描述是不透明的,它没有向您提供任何有用的信息。但是诸如fgets()fread()等例程知道如何使用该信息来获取实际的文件内容。

fclose释放此结构,因此如果您有匹配fopen并且fclose没有内存泄漏(来自这些函数)。