Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中有没有一种方法可以使文件指针彼此相等?_C - Fatal编程技术网

在C语言中有没有一种方法可以使文件指针彼此相等?

在C语言中有没有一种方法可以使文件指针彼此相等?,c,C,例如,如果我有 FILE *fp, *tfp; fp = fopen (file, mode); tfp = fp; 这可能吗?是的,这是可能的。毕竟,这些只是指针。可以有任意多个变量包含同一个指针,并且没有人能够区分它们。这是正确的。但最好的学习方法是尝试。在debugger下启动此代码,并检查其是否按预期工作。指针变量(FILE*fp)仅包含一个地址(一个数字)。你可以看到: printf( "%p\n", fp ); 因此,分配相同类型的号码是完全合法的。是的,这是可能的,也是完全

例如,如果我有

FILE *fp, *tfp;

fp = fopen (file, mode);

tfp = fp;

这可能吗?

是的,这是可能的。毕竟,这些只是指针。可以有任意多个变量包含同一个指针,并且没有人能够区分它们。

这是正确的。但最好的学习方法是尝试。在debugger下启动此代码,并检查其是否按预期工作。

指针变量(FILE*fp)仅包含一个地址(一个数字)。你可以看到:

printf( "%p\n", fp );

因此,分配相同类型的号码是完全合法的。

是的,这是可能的,也是完全合法的

fp
tfp
都是指向类型为
FILE
语句
tfp=fp将保存在fp中的地址复制到tfp中。所以,请记住,最终会有两个指向同一对象的指针


您根本没有复制在fopen()调用中创建的“对象”。

它在语法上是合法的,所以是的。正如其他人所说,是的,您可以。但是记住它们总是一样的你试过了吗?它有效吗?如果它立即失败,那么它是不可能的。如果它成功了,机会是好的,这是可能的,除非你有证据表明它只是靠运气成功的。答案很简单,正如你所看到的。但是,如果您想以某种方式复制您用fopen()创建的“文件描述符”,这会让我感到困惑。这将是一个完全不同的故事。尝试和错误可能会有所帮助,但我不会将其描述为最好的学习方式。为了100%符合标准,指针应该投射到
void*
type:
printf(“%p\n”,(void*)fp)