C语言文件操作的指针问题

C语言文件操作
fseek(fp,0,SEEK_SET);
File *k=fp;
fseek(fp,0,SEEK_END);
为什么k=fp啊
我明明把指向文件头指针的地址赋予了k,
然后用文件操作,使fp从指向它这个文件头变成了指向文件尾。

3个回答

fseek(fp,0,SEEK_END);
->
fseek(k,0,SEEK_END);

因为你改变的是fp不是k

好比
int i = 1;
int j = i;
i = 2;
此时j还是1

你先把fp的指针赋给k k就是目前fp的指针
之后改变fp的指针 但k还指向之前fp的指针

这个是文件流指针,标识的文件流,不是位置,否则ftell返回的就是文件流指针而不是long数据了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐