文件指针1带动同一文件下的指针2

来源:互联网 发布:网络公益活动 编辑:程序博客网 时间:2024/05/01 16:59

 

  今天在做题文本格式化的时候原本以为大功告成了,从表面上看都正确,但是经过细心一看大跌眼镜,原本文件是145KB的文件运行完之后输出的文件才94KB然后经过检查,确定是有一段指针的地方错误了,删除这段之后文件大小就正常了。我还认为文件指针跟其他的指针有着相同的特性 但是今天做了个实验发现,其特性与其他文件的指针有一个地方并不相同
假如我定义了char *p1,*p2;
假如p2指向一个10空间的头地址位置在1,然后在进行p1=p2的操作
再对p1向后移动3次也就是说现在p1在4的位置上p2仍然在1的位置上
这是普通变量指针的特性
但是今天在做题的时候发现文件的指针却不是这样
FILE *p1 *p2
重复上面char的操作然会会发现p1移动p2也跟着移动即使不对p2进行任何操作,p2也会移动
一下是验证程序
#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *fp,*pf;
char ch,cch;
fp=fopen("f://123.txt","r");
pf=fp;
cch=fgetc(pf);
while(cch!=' ')
cch=fgetc(pf);
ch=fgetc(fp);
printf("%c",ch);
}
f://123.txt里的文件内容是wo ai bei jing tian an mei
最后得到的答案是a

我们称它为"文件指针",并不是指它就直接指向文件中某个位置.你DEBUG看一下就知道了,文件指针指向的是一个结构,这个结构里面包含了正在处理的文件的相关信息,因此,你让pf=fp后,pf也指向了同一个结构,因此对pf和fp的操作,在本质上都是一样的.

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 扣扣空间圈人时照片服务错误怎么办 删了qq好友怎么找回来怎么办 苹果5s语音控制打开了怎么办 lv迷你水桶包肩带长了怎么办 在香港买个lv包包过海关怎么办 国际快递手表被海关查应该怎么办 把档案放到人才市场后报到证怎么办 皮表带带久了有异味怎么办 英语中用词不当和拼写错误怎么办 爬楼梯的购物车车轮坏了怎么办? 帮别人买东西不给我钱怎么办 老师念错名字有同学指出来你怎么办 老公婚前买的房子婆婆想霸占怎么办 我想查我的基金收益情况怎么办 儿童票买好了但大人退票了怎么办 没有享受到国家政策的农民怎么办? 股票涨了没抛然后一直跌怎么办 苹果手机放久了开不了机怎么办 部门要辞退你你不想走该怎么办 口头说辞职现在又不想走了怎么办 网上买的理财不给退本金怎么办 买东西遇到态度不好的人你会怎么办 app在下载东西时被停用了怎么办 买东西填错地址 但已签收怎么办 网购手机受骗后电话打不通怎么办 淘宝买的东西发错了怎么办 淘宝上买的东西发错了怎么办 淘宝上买的东西发多了怎么办 淘宝上买的东西出现问题怎么办 淘宝买东西未收到货显示签收怎么办 网上一张车票两人同时付款了怎么办 微信付款时显示银行卡被锁定怎么办 微信忘记支付密码怎么办没有银行卡 支付宝赏金扫码支付不行怎么办 网购收货时发现货物已破损怎么办 货物丢失了不承认调查出来了怎么办 小米商城已签收未收到了怎么办 网购的一只荷兰猪现在怎么办 中通快递的掌中通好评怎么办 唯品会快递被签收却没收到货怎么办 拼多多快递签收了但没收到货怎么办