c语言中fp中地址指针是以什么单位位移的?
答案:1 悬赏:50 手机版
解决时间 2021-03-24 03:40
- 提问者网友:人生佛魔见
- 2021-03-23 19:13
c语言中fp中地址指针是以什么单位位移的?
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-03-23 19:18
看指针类型
如:
char *p p++ 就移动了一个字节
int *p p++ 就移动了sizeof(int)个字节追问那我看内存中的fp值怎么不变啊,我存了两个struct类型,怎么feof检测了四次啊追答你怎么看的 &p 这样么 ? 变量的地址是不变的 , 我们说的指针位移,是指的指针所指向的地方发生了变化,也就是指针的值变了 例如:
char *p = "abcd" ----------------------------------->
p(在地址0xFFFF 值是 0x1234) 地址0x1234 0x1235 0x1236
指向a a b c
p++就变成 (在地址0xFFFF 值是 0x1235) 指向b
关于指针: &p = 0xFFFF p = 0x1235 *p = 'b'
看你好像在做文件操作,文件操作指针位移有专门的函数fseek(), 一般都不用 , 存储数据一般也不判断文件是否结尾,直接写进去就OK了追问file *fp这个fp也是以sizeof(struct。。)来位移的吗?追答你往文件中写 他会自己移动 FILE *fp 这个fp是指向一个FILE类型的结构体,这个结构体里记录一些文件的信息,是通过他们来访问文件的,fp就相当于一个句柄, 你想移动fp 来达到定位文件位置是不可能的 用 fseek 这个函数 ,有一系列这样的 函数, 选一个自己需要的就行 了追问
同一个程序中的,我也是无语了
如:
char *p p++ 就移动了一个字节
int *p p++ 就移动了sizeof(int)个字节追问那我看内存中的fp值怎么不变啊,我存了两个struct类型,怎么feof检测了四次啊追答你怎么看的 &p 这样么 ? 变量的地址是不变的 , 我们说的指针位移,是指的指针所指向的地方发生了变化,也就是指针的值变了 例如:
char *p = "abcd" ----------------------------------->
p(在地址0xFFFF 值是 0x1234) 地址0x1234 0x1235 0x1236
指向a a b c
p++就变成 (在地址0xFFFF 值是 0x1235) 指向b
关于指针: &p = 0xFFFF p = 0x1235 *p = 'b'
看你好像在做文件操作,文件操作指针位移有专门的函数fseek(), 一般都不用 , 存储数据一般也不判断文件是否结尾,直接写进去就OK了追问file *fp这个fp也是以sizeof(struct。。)来位移的吗?追答你往文件中写 他会自己移动 FILE *fp 这个fp是指向一个FILE类型的结构体,这个结构体里记录一些文件的信息,是通过他们来访问文件的,fp就相当于一个句柄, 你想移动fp 来达到定位文件位置是不可能的 用 fseek 这个函数 ,有一系列这样的 函数, 选一个自己需要的就行 了追问
同一个程序中的,我也是无语了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯