这是通过引用传递文件指针的正确语法吗?

时间:2010-07-12 18:13:54

标签: c++ pointers variables reference pass-by-reference

这是通过引用传递文件指针的正确语法吗?

函数调用:printNew(&fpt);

printNew(FILE **fpt)
{        
   //change to fpt in here kept after function exits?
}

2 个答案:

答案 0 :(得分:5)

没有。正确的语法是

void printNew(FILE *&fpt)
{        
   //change to fpt in here kept after function exits?
}

您的代码只会将本地指针更改为FILE指针。代码中只有调用者才能看到对*fpt的更改。如果将其更改为上述内容,则会通过引用传递内容,并且会按预期进行更改。相应的参数照常传递

printNew(fpt);

答案 1 :(得分:2)

我对你要对该文件指针做什么感兴趣 - 你在开放指针上做的正常事情是调用fgets()之类的函数并用fclose()关闭它,其中没有一个需要一个参考