重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个问题要从FILE结构体的数据项组成讲起: struct _iobuf { char *_ptr; //文件输入的下一个位置 int _cnt; //当前缓冲区的相对位置 char *_base; //指基础位置(即是文件的起始位置) int _flag; //文件标志 int _file; //文件的有效性验证 int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取 int _bufsiz; //文件的大小 char *_tmpfname; //临时文件名 } FILE; (注:这是vc++6.0对FILE的定义) 在用fopen()函数打开文件后系统将自动建立一个数据块存放上述信息。 其中“char *_base; ” 指向文件头在缓冲区的位置(即fseek()函数第三形参origin的SEEK_SET常量) “char *_ptr;” 减一即文件指针的当前位置(即fseek()函数第三形参origin的SEEK_CUR常量) 函数原型:int fseek( FILE *stream, long offset, int origin ) 中offset参数是个相对变量,它是相对于origin而言的。比如 int fseek( fp,100L,SEEK_SET ); 就是以文件头为基准向后移动100个字节。原理就是对内存中的FILE结构体中的元素作如下操作 FILE._ptr=FILE._base+100; int fseek( fp,100L,SEEK_CUR ); 就是以文件的当前位置为基准向后移动100个字节,相应的:FILE._ptr+=100; 其他的就不多讲了.明白了吗?
创新互联是一家业务范围包括IDC托管业务,网站空间、主机租用、主机托管,四川、重庆、广东电信服务器租用,绵阳电信机房机柜租用,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。
void f(int *q)
{
q=(int *)0XFFFFFFFF; //这里修改的是函数中形参q这个临时变量的值。而对实参没有影响
}
c语言的其实地址就是 看是做项目是 的 存储地址 就是 物理地址 一般都 要建成文件包形式的 这有利于 多人开发
这太简单了, 函数指针就搞定.
但是一定要确定函数的返回值与参数.
比如说有一个函数定义: int func(int i);
则就要这样:
int (*p)(int i);
scanf("%p", p);
p(10);