在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)代码>